OSDN Git Service

[VM][Qt] Add SANYOPHC-20, PHC-25 and SEIKO MAP-1010 .
[csp-qt/common_source_project-fm7.git] / source / src / vm / i8251.h
index f0f50ca..40ea649 100644 (file)
-/*\r
-       Skelton for retropc emulator\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2006.09.14 -\r
-\r
-       [ i8251 ]\r
-*/\r
-\r
-#ifndef _I8251_H_\r
-#define _I8251_H_\r
-\r
-#include "vm.h"\r
-#include "../emu.h"\r
-#include "device.h"\r
-\r
-#define SIG_I8251_RECV         0\r
-#define SIG_I8251_BREAK                1\r
-#define SIG_I8251_DSR          2\r
-#define SIG_I8251_CLEAR                3\r
-#define SIG_I8251_LOOPBACK     4\r
-\r
-class FIFO;\r
-\r
-class I8251 : public DEVICE\r
-{\r
-private:\r
-       // i8251\r
-       uint8 recv, status, mode;\r
-       bool txen, rxen, loopback;\r
-       \r
-       // output signals\r
-       outputs_t outputs_out;\r
-       outputs_t outputs_rxrdy;\r
-       outputs_t outputs_syndet;\r
-       outputs_t outputs_txrdy;\r
-       outputs_t outputs_txe;\r
-       outputs_t outputs_dtr;\r
-       outputs_t outputs_rst;\r
-       \r
-       // buffer\r
-       FIFO *recv_buffer;\r
-       FIFO *send_buffer;\r
-       int recv_id, send_id;\r
-       \r
-public:\r
-       I8251(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)\r
-       {\r
-               init_output_signals(&outputs_out);\r
-               init_output_signals(&outputs_rxrdy);\r
-               init_output_signals(&outputs_syndet);\r
-               init_output_signals(&outputs_txrdy);\r
-               init_output_signals(&outputs_txe);\r
-               init_output_signals(&outputs_dtr);\r
-               init_output_signals(&outputs_rst);\r
-       }\r
-       ~I8251() {}\r
-       \r
-       // common functions\r
-       void initialize();\r
-       void release();\r
-       void reset();\r
-       void write_io8(uint32 addr, uint32 data);\r
-       uint32 read_io8(uint32 addr);\r
-       void write_signal(int id, uint32 data, uint32 mask);\r
-       void event_callback(int event_id, int err);\r
-       void save_state(FILEIO* state_fio);\r
-       bool load_state(FILEIO* state_fio);\r
-       \r
-       // unique functions\r
-       void set_context_out(DEVICE* device, int id)\r
-       {\r
-               register_output_signal(&outputs_out, device, id, 0xff);\r
-       }\r
-       void set_context_rxrdy(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_rxrdy, device, id, mask);\r
-       }\r
-       void set_context_syndet(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_syndet, device, id, mask);\r
-       }\r
-       void set_context_txrdy(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_txrdy, device, id, mask);\r
-       }\r
-       void set_context_txe(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_txe, device, id, mask);\r
-       }\r
-       void set_context_dtr(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_dtr, device, id, mask);\r
-       }\r
-       void set_context_rst(DEVICE* device, int id, uint32 mask)\r
-       {\r
-               register_output_signal(&outputs_rst, device, id, mask);\r
-       }\r
-};\r
-\r
-#endif\r
-\r
+/*
+       Skelton for retropc emulator
+
+       Author : Takeda.Toshiya
+       Date   : 2006.09.14 -
+
+       [ i8251 ]
+*/
+
+#ifndef _I8251_H_
+#define _I8251_H_
+
+#include "vm.h"
+#include "../emu.h"
+#include "device.h"
+
+#define SIG_I8251_RECV         0
+#define SIG_I8251_BREAK                1
+#define SIG_I8251_DSR          2
+#define SIG_I8251_CLEAR                3
+#define SIG_I8251_LOOPBACK     4
+
+class FIFO;
+
+class I8251 : public DEVICE
+{
+private:
+       // i8251
+       uint8 recv, status, mode;
+       bool txen, rxen, loopback;
+       
+       // output signals
+       outputs_t outputs_out;
+       outputs_t outputs_rxrdy;
+       outputs_t outputs_syndet;
+       outputs_t outputs_txrdy;
+       outputs_t outputs_txe;
+       outputs_t outputs_dtr;
+       outputs_t outputs_rst;
+       
+       // buffer
+       FIFO *recv_buffer;
+       FIFO *send_buffer;
+       int recv_id, send_id;
+       
+public:
+       I8251(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       {
+               init_output_signals(&outputs_out);
+               init_output_signals(&outputs_rxrdy);
+               init_output_signals(&outputs_syndet);
+               init_output_signals(&outputs_txrdy);
+               init_output_signals(&outputs_txe);
+               init_output_signals(&outputs_dtr);
+               init_output_signals(&outputs_rst);
+       }
+       ~I8251() {}
+       
+       // common functions
+       void initialize();
+       void release();
+       void reset();
+       void write_io8(uint32 addr, uint32 data);
+       uint32 read_io8(uint32 addr);
+       void write_signal(int id, uint32 data, uint32 mask);
+       void event_callback(int event_id, int err);
+       void save_state(FILEIO* state_fio);
+       bool load_state(FILEIO* state_fio);
+       
+       // unique functions
+       void set_context_out(DEVICE* device, int id)
+       {
+               register_output_signal(&outputs_out, device, id, 0xff);
+       }
+       void set_context_rxrdy(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_rxrdy, device, id, mask);
+       }
+       void set_context_syndet(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_syndet, device, id, mask);
+       }
+       void set_context_txrdy(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_txrdy, device, id, mask);
+       }
+       void set_context_txe(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_txe, device, id, mask);
+       }
+       void set_context_dtr(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_dtr, device, id, mask);
+       }
+       void set_context_rst(DEVICE* device, int id, uint32 mask)
+       {
+               register_output_signal(&outputs_rst, device, id, mask);
+       }
+};
+
+#endif
+