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 / tk80bs / cmt.h
1 /*\r
2         NEC TK-80BS (COMPO BS/80) Emulator 'eTK-80BS'\r
3 \r
4         Author : Takeda.Toshiya\r
5         Date   : 2008.08.26 -\r
6 \r
7         [ cmt ]\r
8 */\r
9 \r
10 #ifndef _CMT_H_\r
11 #define _CMT_H_\r
12 \r
13 #include "../vm.h"\r
14 #include "../../emu.h"\r
15 #include "../device.h"\r
16 \r
17 #define SIG_CMT_OUT     0\r
18 \r
19 // max 256kbytes\r
20 #define BUFFER_SIZE     0x40000\r
21 \r
22 class CMT : public DEVICE\r
23 {\r
24 private:\r
25         DEVICE* d_sio;\r
26         \r
27         FILEIO* fio;\r
28         int bufcnt;\r
29         uint8 buffer[BUFFER_SIZE];\r
30         bool play, rec;\r
31         \r
32         void release_tape();\r
33         \r
34 public:\r
35         CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
36         ~CMT() {}\r
37         \r
38         // common functions\r
39         void initialize();\r
40         void release();\r
41         void reset();\r
42         void write_signal(int id, uint32 data, uint32 mask);\r
43         \r
44         // unique functions\r
45         void play_tape(_TCHAR* file_path);\r
46         void rec_tape(_TCHAR* file_path);\r
47         void close_tape();\r
48         bool tape_inserted()\r
49         {\r
50                 return (play || rec);\r
51         }\r
52         void set_context_sio(DEVICE* device)\r
53         {\r
54                 d_sio = device;\r
55         }\r
56 };\r
57 \r
58 #endif\r
59 \r