2 NEC PC-98LT Emulator 'ePC-98LT'
3 NEC PC-98HA Emulator 'eHANDY98'
5 Author : Takeda.Toshiya
15 #define DEVICE_NAME "NEC PC-98HA"
16 #define CONFIG_NAME "pc98ha"
18 #define DEVICE_NAME "NEC PC-98LT"
19 #define CONFIG_NAME "pc98lt"
22 // device informations for virtual machine
23 #define FRAMES_PER_SEC 56.4
24 #define LINES_PER_FRAME 440
26 #define CPU_CLOCKS 10000000
28 #define CPU_CLOCKS 8000000
30 #define SCREEN_WIDTH 640
31 #define SCREEN_HEIGHT 400
34 #define I86_PSEUDO_BIOS
35 #define I8259_MAX_CHIPS 1
36 //#define UPD765A_DMA_MODE
37 //#define SINGLE_MODE_DMA
38 #define IO_ADDR_MAX 0x10000
39 #define IOBUS_RETURN_ADDR
41 //#define DOCKING_STATION
44 // device informations for win32
45 #define USE_FLOPPY_DISK 1
46 #define NOTIFY_KEY_DOWN
47 #define USE_KEY_LOCKED
48 #define USE_SHIFT_NUMPAD_KEY
49 #define USE_ALT_F10_KEY
50 #define USE_AUTO_KEY 5
51 #define USE_AUTO_KEY_RELEASE 6
52 #define USE_AUTO_KEY_NUMPAD
53 #define USE_SOUND_VOLUME 2
55 #define USE_PRINTER_TYPE 3
60 #include "../../common.h"
61 #include "../../fileio.h"
62 #include "../vm_template.h"
64 #ifdef USE_SOUND_VOLUME
65 static const _TCHAR *sound_device_caption[] = {
66 _T("Beep"), _T("Noise (FDD)"),
70 class csp_state_utils;
81 //#if defined(HAS_V30) || defined(HAS_I86)
103 class VM : public VM_TEMPLATE
107 //csp_state_utils *state_entry;
120 //#if defined(HAS_V30) || defined(HAS_I86)
139 PC98LT_MEMORY* memory;
143 // ----------------------------------------
145 // ----------------------------------------
150 // ----------------------------------------
151 // for emulation class
152 // ----------------------------------------
154 // drive virtual machine
160 DEVICE *get_cpu(int index);
167 void initialize_sound(int rate, int samples);
168 uint16_t* create_sound(int* extra_frames);
169 int get_sound_buffer_ptr();
170 #ifdef USE_SOUND_VOLUME
171 void set_sound_device_volume(int ch, int decibel_l, int decibel_r);
175 void key_down(int code, bool repeat);
176 void key_up(int code);
177 bool get_caps_locked();
178 bool get_kana_locked();
181 void open_floppy_disk(int drv, const _TCHAR* file_path, int bank);
182 void close_floppy_disk(int drv);
183 bool is_floppy_disk_inserted(int drv);
184 void is_floppy_disk_protected(int drv, bool value);
185 bool is_floppy_disk_protected(int drv);
186 uint32_t is_floppy_disk_accessed();
187 bool is_frame_skippable();
189 void update_config();
190 bool process_state(FILEIO* state_fio, bool loading);
192 // ----------------------------------------
194 // ----------------------------------------
197 DEVICE* get_device(int id);
199 //DEVICE* first_device;
200 //DEVICE* last_device;