diff io.h @ 2235:93918a6a8ab7

Initial support for Sega multi-tap
author Michael Pavone <pavone@retrodev.com>
date Tue, 13 Sep 2022 20:08:26 -0700
parents 0f54a898db03
children 1978bd770023
line wrap: on
line diff
--- a/io.h	Sun Sep 11 15:04:42 2022 -0700
+++ b/io.h	Tue Sep 13 20:08:26 2022 -0700
@@ -29,7 +29,8 @@
 	IO_HEARTBEAT_TRAINER
 };
 
-typedef struct {
+typedef struct io_port io_port;
+struct io_port {
 	union {
 		struct {
 			uint32_t timeout_cycle;
@@ -76,6 +77,17 @@
 			uint8_t  cmd;
 			uint8_t  remaining_bytes;
 		} heartbeat_trainer;
+		struct {
+			io_port  *ports;
+			uint32_t ready_cycle;
+			uint8_t  tr_counter;
+			uint8_t  tap_num;
+			uint8_t  device_ids[4];
+			uint8_t  data[4];
+			uint8_t  cur_port;
+			uint8_t  port_start;
+			uint8_t  reset_state;
+		} multitap;
 	} device;
 	uint8_t  output;
 	uint8_t  control;
@@ -92,7 +104,7 @@
 	uint8_t  serial_receiving;
 	uint8_t  serial_ctrl;
 	uint8_t  device_type;
-} io_port;
+};
 
 typedef struct {
 	io_port	ports[3];