2 FUJITSU FMR-50 Emulator 'eFMR-50'
\r
3 FUJITSU FMR-60 Emulator 'eFMR-60'
\r
5 Author : Takeda.Toshiya
\r
15 #if defined(HAS_I286)
\r
16 #define DEVICE_NAME "FUJITSU FMR-50 (i286)"
\r
17 #define CONFIG_NAME "fmr50_i286"
\r
18 #elif defined(HAS_I386)
\r
19 #define DEVICE_NAME "FUJITSU FMR-50 (i386)"
\r
20 #define CONFIG_NAME "fmr50_i386"
\r
21 #elif defined(HAS_I486)
\r
22 #define DEVICE_NAME "FUJITSU FMR-50 (i486)"
\r
23 #define CONFIG_NAME "fmr50_i486"
\r
24 #elif defined(HAS_PENTIUM)
\r
25 #define DEVICE_NAME "FUJITSU FMR-250"
\r
26 #define CONFIG_NAME "fmr250"
\r
28 #elif defined(_FMR60)
\r
29 #if defined(HAS_I286)
\r
30 #define DEVICE_NAME "FUJITSU FMR-60"
\r
31 #define CONFIG_NAME "fmr60"
\r
32 #elif defined(HAS_I386)
\r
33 #define DEVICE_NAME "FUJITSU FMR-70"
\r
34 #define CONFIG_NAME "fmr70"
\r
35 #elif defined(HAS_I486)
\r
36 #define DEVICE_NAME "FUJITSU FMR-80"
\r
37 #define CONFIG_NAME "fmr80"
\r
38 #elif defined(HAS_PENTIUM)
\r
39 #define DEVICE_NAME "FUJITSU FMR-280"
\r
40 #define CONFIG_NAME "fmr280"
\r
44 // device informations for virtual machine
\r
45 #define FRAMES_PER_SEC 55.4
\r
47 #define LINES_PER_FRAME 784
\r
48 #define CHARS_PER_LINE 98
\r
50 #define LINES_PER_FRAME 440
\r
51 #define CHARS_PER_LINE 54
\r
53 //#define CPU_CLOCKS 12000000
\r
54 #define CPU_CLOCKS 8000000
\r
56 #define SCREEN_WIDTH 1120
\r
57 #define SCREEN_HEIGHT 750
\r
59 #define SCREEN_WIDTH 640
\r
60 #define SCREEN_HEIGHT 400
\r
64 #define MAX_MEMCARD 2
\r
65 #if defined(HAS_I286)
\r
66 #define I86_BIOS_CALL
\r
68 #define I386_BIOS_CALL
\r
70 #define I8259_MAX_CHIPS 2
\r
71 //#define SINGLE_MODE_DMA
\r
72 #define IO_ADDR_MAX 0x10000
\r
74 // device informations for win32
\r
75 #define USE_CPU_TYPE 2
\r
80 #define NOTIFY_KEY_DOWN
\r
81 #define USE_SHIFT_NUMPAD_KEY
\r
82 #define USE_ALT_F10_KEY
\r
83 #define USE_AUTO_KEY 5
\r
84 #define USE_AUTO_KEY_RELEASE 6
\r
85 #define USE_CRT_FILTER
\r
86 #define USE_ACCESS_LAMP
\r
87 // i386 core will support debugger later
\r
88 //#if defined(HAS_I286)
\r
89 #define USE_DEBUGGER
\r
92 #include "../../common.h"
\r
105 #if defined(HAS_I286)
\r
134 #if defined(_FMR60)
\r
141 #if defined(HAS_I286)
\r
155 KEYBOARD* keyboard;
\r
162 // ----------------------------------------
\r
164 // ----------------------------------------
\r
166 VM(EMU* parent_emu);
\r
169 // ----------------------------------------
\r
170 // for emulation class
\r
171 // ----------------------------------------
\r
173 // drive virtual machine
\r
177 #ifdef USE_DEBUGGER
\r
179 DEVICE *get_cpu(int index);
\r
183 void draw_screen();
\r
186 // sound generation
\r
187 void initialize_sound(int rate, int samples);
\r
188 uint16* create_sound(int* extra_frames);
\r
189 int sound_buffer_ptr();
\r
192 void key_down(int code, bool repeat);
\r
193 void key_up(int code);
\r
196 void open_disk(int drv, _TCHAR* file_path, int offset);
\r
197 void close_disk(int drv);
\r
198 bool disk_inserted(int drv);
\r
201 void update_config();
\r
203 // ----------------------------------------
\r
205 // ----------------------------------------
\r
208 DEVICE* get_device(int id);
\r
210 DEVICE* first_device;
\r
211 DEVICE* last_device;
\r