OSDN Git Service

[General] Tracking to upstream, rev 2015-01-14.
[csp-qt/common_source_project-fm7.git] / source / src / vm / phc20 / phc20.h
1 /*\r
2         SANYO PHC-20 Emulator 'ePHC-20'\r
3 \r
4         Author : Takeda.Toshiya\r
5         Date   : 2010.09.03-\r
6 \r
7         [ virtual machine ]\r
8 */\r
9 \r
10 #ifndef _PHC20_H_\r
11 #define _PHC20_H_\r
12 \r
13 #define DEVICE_NAME             "SANYO PHC-20"\r
14 #define CONFIG_NAME             "phc20"\r
15 \r
16 // device informations for virtual machine\r
17 #define FRAMES_PER_SEC          60\r
18 #define LINES_PER_FRAME         262\r
19 #define CPU_CLOCKS              4000000\r
20 #define SCREEN_WIDTH            256\r
21 #define SCREEN_HEIGHT           192\r
22 \r
23 #define MC6847_VRAM_INV         0x40\r
24 \r
25 // device informations for win32\r
26 #define USE_TAPE\r
27 #define USE_ALT_F10_KEY\r
28 #define USE_AUTO_KEY            6\r
29 #define USE_AUTO_KEY_RELEASE    10\r
30 #define USE_AUTO_KEY_NO_CAPS\r
31 #define USE_DEBUGGER\r
32 #define USE_STATE\r
33 \r
34 #include "../../common.h"\r
35 \r
36 class EMU;\r
37 class DEVICE;\r
38 class EVENT;\r
39 \r
40 class DATAREC;\r
41 class MC6847;\r
42 class Z80;\r
43 \r
44 class MEMORY;\r
45 \r
46 class FILEIO;\r
47 \r
48 class VM\r
49 {\r
50 protected:\r
51         EMU* emu;\r
52         \r
53         // devices\r
54         EVENT* event;\r
55         \r
56         DATAREC* drec;\r
57         MC6847* vdp;\r
58         Z80* cpu;\r
59         \r
60         MEMORY* memory;\r
61         \r
62 public:\r
63         // ----------------------------------------\r
64         // initialize\r
65         // ----------------------------------------\r
66         \r
67         VM(EMU* parent_emu);\r
68         ~VM();\r
69         \r
70         // ----------------------------------------\r
71         // for emulation class\r
72         // ----------------------------------------\r
73         \r
74         // drive virtual machine\r
75         void reset();\r
76         void run();\r
77         \r
78 #ifdef USE_DEBUGGER\r
79         // debugger\r
80         DEVICE *get_cpu(int index);\r
81 #endif\r
82         \r
83         // draw screen\r
84         void draw_screen();\r
85         \r
86         // sound generation\r
87         void initialize_sound(int rate, int samples);\r
88         uint16* create_sound(int* extra_frames);\r
89         int sound_buffer_ptr();\r
90         \r
91         // user interface\r
92         void play_tape(_TCHAR* file_path);\r
93         void rec_tape(_TCHAR* file_path);\r
94         void close_tape();\r
95         bool tape_inserted();\r
96         bool now_skip();\r
97         \r
98         void update_config();\r
99         void save_state(FILEIO* state_fio);\r
100         bool load_state(FILEIO* state_fio);\r
101         \r
102         // ----------------------------------------\r
103         // for each device\r
104         // ----------------------------------------\r
105         \r
106         // devices\r
107         DEVICE* get_device(int id);\r
108         DEVICE* dummy;\r
109         DEVICE* first_device;\r
110         DEVICE* last_device;\r
111 };\r
112 \r
113 #endif\r