summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/ssystem3.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/includes/ssystem3.h')
-rw-r--r--src/mess/includes/ssystem3.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/mess/includes/ssystem3.h b/src/mess/includes/ssystem3.h
new file mode 100644
index 00000000000..5e230283bef
--- /dev/null
+++ b/src/mess/includes/ssystem3.h
@@ -0,0 +1,64 @@
+/*****************************************************************************
+ *
+ * includes/ssystem3.h
+ *
+ ****************************************************************************/
+
+#ifndef SSYSTEM3_H_
+#define SSYSTEM3_H_
+
+
+typedef struct
+{
+ int signal;
+ // int on;
+
+ int count, bit, started;
+ UINT8 data;
+ attotime time, high_time, low_time;
+ union {
+ struct {
+ UINT8 header[7];
+ UINT8 field[8][8/2];
+ UINT8 unknown[5];
+ } s;
+ UINT8 data[7+8*8/2+5];
+ } u;
+} playfield_t;
+
+typedef struct
+{
+ UINT8 data[5];
+ int clock;
+ int count;
+} lcd_t;
+
+
+class ssystem3_state : public driver_device
+{
+public:
+ ssystem3_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag) { }
+
+ UINT8 m_porta;
+ UINT8 *m_videoram;
+ playfield_t m_playfield;
+ lcd_t m_lcd;
+ DECLARE_DRIVER_INIT(ssystem3);
+};
+
+
+/*----------- defined in drivers/ssystem3.c -----------*/
+
+void ssystem3_playfield_getfigure(running_machine &machine, int x, int y, int *figure, int *black);
+
+/*----------- defined in video/ssystem3.c -----------*/
+
+extern PALETTE_INIT( ssystem3 );
+extern VIDEO_START( ssystem3 );
+extern SCREEN_UPDATE_IND16( ssystem3 );
+
+void ssystem3_lcd_reset(running_machine &machine);
+void ssystem3_lcd_write(running_machine &machine, int clock, int data);
+
+#endif /* SSYSTEM3_H_ */