-/*\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