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)
105 class VM : public VM_TEMPLATE
109 //csp_state_utils *state_entry;
122 //#if defined(HAS_V30) || defined(HAS_I86)
138 PC98HA::CALENDAR* calendar;
139 PC98HA::FLOPPY* floppy;
140 PC98HA::KEYBOARD* keyboard;
141 PC98HA::MEMORY* memory;
145 // ----------------------------------------
147 // ----------------------------------------
152 // ----------------------------------------
153 // for emulation class
154 // ----------------------------------------
156 // drive virtual machine
162 DEVICE *get_cpu(int index);
169 void initialize_sound(int rate, int samples);
170 uint16_t* create_sound(int* extra_frames);
171 int get_sound_buffer_ptr();
172 #ifdef USE_SOUND_VOLUME
173 void set_sound_device_volume(int ch, int decibel_l, int decibel_r);
177 void key_down(int code, bool repeat);
178 void key_up(int code);
179 bool get_caps_locked();
180 bool get_kana_locked();
183 void open_floppy_disk(int drv, const _TCHAR* file_path, int bank);
184 void close_floppy_disk(int drv);
185 bool is_floppy_disk_inserted(int drv);
186 void is_floppy_disk_protected(int drv, bool value);
187 bool is_floppy_disk_protected(int drv);
188 uint32_t is_floppy_disk_accessed();
189 bool is_frame_skippable();
191 void update_config();
192 bool process_state(FILEIO* state_fio, bool loading);
194 // ----------------------------------------
196 // ----------------------------------------
199 DEVICE* get_device(int id);
201 //DEVICE* first_device;
202 //DEVICE* last_device;