26#ifndef _MEGADUCK_LAPTOP_IO_H
27#define _MEGADUCK_LAPTOP_IO_H
31#define DUCK_IO_CMD_INIT_START 0x00u
32#define DUCK_IO_CMD_GET_KEYS 0x00u
33#define DUCK_IO_CMD_DONE_OR_OK 0x01u
35#define DUCK_IO_CMD_ABORT_OR_FAIL 0x04u
36#define DUCK_IO_CMD_PLAY_SPEECH 0x05u
37#define DUCK_IO_CMD_RUN_CART_IN_SLOT 0x08u
38#define DUCK_IO_CMD_PRINT_INIT_EXT_IO 0x09u
39#define DUCK_IO_CMD_SET_RTC 0x0Bu
40#define DUCK_IO_CMD_GET_RTC 0x0Cu
41#define DUCK_IO_CMD_PRINT_SEND_BYTES 0x11u
45#define DUCK_IO_REPLY_BOOT_UNSET 0x00u
46#define DUCK_IO_REPLY_BOOT_FAIL 0x01u
47#define DUCK_IO_REPLY_BUFFER_XFER_OK 0x01u
48#define DUCK_IO_REPLY_SEND_BUFFER_OK 0x03u
50#define DUCK_IO_REPLY_BOOT_OK 0x01u
52#define DUCK_IO_LEN_KBD_GET 2u
53#define DUCK_IO_LEN_RTC_GET 8u
54#define DUCK_IO_LEN_RTC_SET 8u
55#define DUCK_IO_LEN_PLAY_SPEECH 1u
57#define DUCK_IO_REPLY_NO_CART_IN_SLOT 06u
62#define DUCK_IO_LEN_RX_MAX 14u
63#define DUCK_IO_LEN_TX_MAX 14u
65#define DUCK_IO_TIMEOUT_2_MSEC 2u
66#define DUCK_IO_TIMEOUT_100_MSEC 100u
67#define DUCK_IO_TIMEOUT_200_MSEC 200u
71#define DUCK_IO_SPEECH_CMD_MIN 1
72#define DUCK_IO_SPEECH_CMD_MAX 6
76#define DUCK_IO_RTC_YEAR 0u
77#define DUCK_IO_RTC_MON 1u
78#define DUCK_IO_RTC_DAY 2u
79#define DUCK_IO_RTC_WEEKDAY 3u
80#define DUCK_IO_RTC_AMPM 4u
81#define DUCK_IO_RTC_HOUR 5u
82#define DUCK_IO_RTC_MIN 6u
83#define DUCK_IO_RTC_SEC 7u
87#define DUCK_IO_KBD_FLAGS 0u
88#define DUCK_IO_KBD_KEYCODE 1u
93#define DUCK_IO_PRINTER_FAIL 0x00u
94#define DUCK_IO_PRINTER_TYPE_2_PASS 0x01u
95#define DUCK_IO_PRINTER_TYPE_1_PASS 0x02u
96#define DUCK_IO_PRINTER_MAYBE_BUSY 0x03u
#define DUCK_IO_LEN_RX_MAX
Definition: laptop_io.h:62
#define DUCK_IO_LEN_TX_MAX
Definition: laptop_io.h:63
void duck_io_enable_read_byte(void)
bool duck_io_laptop_init(void)
uint8_t duck_io_printer_last_status(void)
uint8_t duck_io_printer_query(void)
uint8_t duck_io_read_byte_no_timeout(void)
bool duck_io_read_byte_with_msecs_timeout(uint8_t timeout_len_ms)
uint8_t duck_io_rx_buf[DUCK_IO_LEN_RX_MAX]
uint8_t duck_io_rx_buf_len
volatile uint8_t duck_io_rx_byte
volatile bool duck_io_rx_byte_done
void duck_io_send_byte(uint8_t tx_byte)
bool duck_io_send_byte_and_check_ack_msecs_timeout(uint8_t tx_byte, uint8_t timeout_len_ms, uint8_t expected_reply)
bool duck_io_send_cmd_and_buffer(uint8_t io_cmd)
bool duck_io_send_cmd_and_receive_buffer(uint8_t io_cmd)
uint8_t duck_io_tx_buf[DUCK_IO_LEN_TX_MAX]
uint8_t duck_io_tx_buf_len
unsigned char uint8_t
Definition: stdint.h:51