OSDN Git Service

[VM][STATE] Apply new framework to some VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pc6001 / psub.h
index 58fd682..fa8e66b 100644 (file)
@@ -1,81 +1,91 @@
-/*\r
-       NEC PC-6001 Emulator 'yaPC-6001'\r
-       NEC PC-6001mkII Emulator 'yaPC-6201'\r
-       NEC PC-6001mkIISR Emulator 'yaPC-6401'\r
-       NEC PC-6601 Emulator 'yaPC-6601'\r
-       NEC PC-6601SR Emulator 'yaPC-6801'\r
-\r
-       Author : tanam\r
-       Date   : 2013.07.15-\r
-\r
-       [ pseudo sub cpu ]\r
-*/\r
-\r
-#ifndef _PSUB_H_\r
-#define _PSUB_H_\r
-\r
-#include "../vm.h"\r
-#include "../../emu.h"\r
-#include "../device.h"\r
-\r
-class FILEIO;\r
-\r
-class PSUB : public DEVICE\r
-{\r
-private:\r
-       DEVICE *d_pio, *d_timer;\r
-       \r
-       // data recorder\r
-       FILEIO* fio;\r
-       bool play, rec;\r
-       int CasIntFlag;\r
-       int CasIndex;\r
-       int CasMode;\r
-       int CasBaud;\r
-       int CasEventID;\r
-       uint8 CasData[0x10000];\r
-       \r
-       uint8* key_stat;\r
-       int kbFlagFunc;\r
-       int kbFlagGraph;\r
-       int kbFlagCtrl;\r
-       int kanaMode;\r
-       int katakana;\r
-       int p6key;\r
-       int stick0;\r
-       int StrigIntFlag;\r
-       int StrigEventID;\r
-       void update_keyboard();\r
-       \r
-public:\r
-       PSUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
-       ~PSUB() {}\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 event_frame();\r
-       void event_callback(int event_id, int err);\r
-       uint32 intr_ack();\r
-       \r
-       // unique functions\r
-       void set_context_pio(DEVICE* device)\r
-       {\r
-               d_pio = device;\r
-       }\r
-       void set_context_timer(DEVICE* device)\r
-       {\r
-               d_timer = device;\r
-       }\r
-       bool play_tape(_TCHAR* file_path);\r
-       bool rec_tape(_TCHAR* file_path);\r
-       void close_tape();\r
-       bool tape_inserted()\r
-       {\r
-               return (play || rec);\r
-       }\r
-};\r
-#endif\r
+/*
+       NEC PC-6001 Emulator 'yaPC-6001'
+       NEC PC-6001mkII Emulator 'yaPC-6201'
+       NEC PC-6001mkIISR Emulator 'yaPC-6401'
+       NEC PC-6601 Emulator 'yaPC-6601'
+       NEC PC-6601SR Emulator 'yaPC-6801'
+
+       Author : tanam
+       Date   : 2013.07.15-
+
+       [ pseudo sub cpu ]
+*/
+
+#ifndef _PSUB_H_
+#define _PSUB_H_
+
+#include "../vm.h"
+#include "../../emu.h"
+#include "../device.h"
+
+class FILEIO;
+
+class PSUB : public DEVICE
+{
+private:
+       DEVICE *d_pio, *d_timer;
+       
+       // data recorder
+       FILEIO* fio;
+       bool play, rec, is_wav, is_p6t;
+       _TCHAR rec_file_path[_MAX_PATH];
+       int CasIntFlag;
+       int CasIndex;
+       int CasRecv;
+       int CasMode;
+       int CasBaud, FileBaud;
+       uint8_t CasData[0x10000];
+       int CasLength;
+       int CasSkipFlag;
+       
+//     const uint8_t* key_stat;
+       uint8_t key_stat[256];
+       int kbFlagFunc;
+       int kbFlagGraph;
+       int kbFlagCtrl;
+       int kanaMode;
+       int katakana;
+       int p6key;
+       int stick0;
+       int StrigIntFlag;
+       int StrigEventID;
+       void update_keyboard();
+       
+public:
+       PSUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       {
+               set_device_name(_T("Pseudo Sub System"));
+       }
+       ~PSUB() {}
+       
+       // common functions
+       void initialize();
+       void release();
+       void reset();
+       void write_io8(uint32_t addr, uint32_t data);
+       uint32_t read_io8(uint32_t addr);
+       void event_frame();
+       void event_callback(int event_id, int err);
+       uint32_t get_intr_ack();
+       bool process_state(FILEIO* state_fio, bool loading);
+       
+       // unique functions
+       void set_context_pio(DEVICE* device)
+       {
+               d_pio = device;
+       }
+       void set_context_timer(DEVICE* device)
+       {
+               d_timer = device;
+       }
+       bool play_tape(const _TCHAR* file_path);
+       bool rec_tape(const _TCHAR* file_path);
+       void close_tape();
+       bool is_tape_inserted()
+       {
+               return (play || rec);
+       }
+       void key_down(int code);
+       void key_up(int code);
+};
+#endif