OSDN Git Service

[INITIAL] Import 20141226 version of http://homepage3.nifty.com/takeda-toshiya/common...
[csp-qt/common_source_project-fm7.git] / source / src / vm / pc8201 / cmt.h
diff --git a/source/src/vm/pc8201/cmt.h b/source/src/vm/pc8201/cmt.h
new file mode 100644 (file)
index 0000000..408dd93
--- /dev/null
@@ -0,0 +1,56 @@
+/*\r
+       NEC PC-8201 Emulator 'ePC-8201'\r
+\r
+       Author : Takeda.Toshiya\r
+       Date   : 2013.04.22-\r
+\r
+       [ cmt (record only) ]\r
+*/\r
+\r
+#ifndef _CMT_H_\r
+#define _CMT_H_\r
+\r
+#include "../vm.h"\r
+#include "../../emu.h"\r
+#include "../device.h"\r
+\r
+#define SIG_CMT_REMOTE 0\r
+#define SIG_CMT_SOD    1\r
+\r
+// max 256kbytes\r
+#define BUFFER_SIZE    0x40000\r
+\r
+class CMT : public DEVICE\r
+{\r
+private:\r
+       FILEIO* fio;\r
+       int bufcnt;\r
+       uint8 buffer[BUFFER_SIZE];\r
+       int prev_signal;\r
+       uint32 prev_clock;\r
+       bool is_wav, rec, remote;\r
+       \r
+       void write_buffer(uint8 value, int samples);\r
+       void put_signal();\r
+       \r
+public:\r
+       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
+       ~CMT() {}\r
+       \r
+       // common functions\r
+       void initialize();\r
+       void release();\r
+       void reset();\r
+       void write_signal(int id, uint32 data, uint32 mask);\r
+       \r
+       // unique functions\r
+       void rec_tape(_TCHAR* file_path);\r
+       void close_tape();\r
+       bool tape_inserted()\r
+       {\r
+               return rec;\r
+       }\r
+};\r
+\r
+#endif\r
+\r