X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=source%2Fsrc%2Fvm%2Fpc100%2Fpc100.h;h=4fc85e9b7cc0c210b5644e138195c5250661a93c;hb=1a7386afa4c2ce25de158ba8285bc795446a8584;hp=94a4a83d4eda65ee03273f6058bc3dd0150774db;hpb=e4757c8ba1ac44a961dd3469e9b34b88e0197ac6;p=csp-qt%2Fcommon_source_project-fm7.git diff --git a/source/src/vm/pc100/pc100.h b/source/src/vm/pc100/pc100.h index 94a4a83d4..4fc85e9b7 100644 --- a/source/src/vm/pc100/pc100.h +++ b/source/src/vm/pc100/pc100.h @@ -19,6 +19,7 @@ #define CPU_CLOCKS 6988800 #define SCREEN_WIDTH 720 #define SCREEN_HEIGHT 512 +#define WINDOW_HEIGHT_ASPECT 540 //720 #define MAX_DRIVE 4 #define HAS_I86 @@ -31,23 +32,34 @@ #define IO_ADDR_MAX 0x10000 // device informations for win32 -#define USE_FD1 -#define USE_FD2 +#define USE_DRIVE_TYPE 2 +#define USE_FLOPPY_DISK 2 #define NOTIFY_KEY_DOWN +#define USE_KEY_LOCKED #define USE_SHIFT_NUMPAD_KEY #define USE_ALT_F10_KEY #define USE_AUTO_KEY 5 #define USE_AUTO_KEY_RELEASE 6 +#define USE_AUTO_KEY_NUMPAD #define USE_MONITOR_TYPE 2 -#define USE_CRT_FILTER -#define USE_SCREEN_ROTATE -#define USE_ACCESS_LAMP +#define USE_SCREEN_FILTER +#define USE_SOUND_VOLUME 3 +#define USE_MOUSE #define USE_DEBUGGER #define USE_STATE +#define USE_CPU_I286 #include "../../common.h" #include "../../fileio.h" +#include "../vm_template.h" +#ifdef USE_SOUND_VOLUME +static const _TCHAR *sound_device_caption[] = { + _T("Beep #1"), _T("Beep #2"), _T("Noise (FDD)"), +}; +#endif + +class csp_state_utils; class EMU; class DEVICE; class EVENT; @@ -64,19 +76,22 @@ class MSM58321; class PCM1BIT; class UPD765A; -class CRTC; -class IOCTRL; -class KANJI; +namespace PC100 { + class CRTC; + class IOCTRL; + class KANJI; +} -class VM +class VM : public VM_TEMPLATE { protected: - EMU* emu; + //EMU* emu; + //csp_state_utils *state_entry; // devices - EVENT* event; + //EVENT* event; - AND* and; + AND* and_drq; BEEP* beep; I8251* sio; I8255* pio0; @@ -89,13 +104,13 @@ protected: PCM1BIT* pcm; UPD765A* fdc; - CRTC* crtc; - IOCTRL* ioctrl; - KANJI* kanji; + PC100::CRTC* crtc; + PC100::IOCTRL* ioctrl; + PC100::KANJI* kanji; // memory - uint8 ram[0xc0000]; // Main RAM 768KB - uint8 ipl[0x8000]; // IPL 32KB + uint8_t ram[0xc0000]; // Main RAM 768KB + uint8_t ipl[0x8000]; // IPL 32KB public: // ---------------------------------------- @@ -120,28 +135,32 @@ public: // draw screen void draw_screen(); - int access_lamp(); // sound generation void initialize_sound(int rate, int samples); - uint16* create_sound(int* extra_frames); - int sound_buffer_ptr(); + uint16_t* create_sound(int* extra_frames); + int get_sound_buffer_ptr(); +#ifdef USE_SOUND_VOLUME + void set_sound_device_volume(int ch, int decibel_l, int decibel_r); +#endif // notify key void key_down(int code, bool repeat); void key_up(int code); + bool get_caps_locked(); + bool get_kana_locked(); // user interface - void open_disk(int drv, _TCHAR* file_path, int bank); - void close_disk(int drv); - bool disk_inserted(int drv); - void set_disk_protected(int drv, bool value); - bool get_disk_protected(int drv); - bool now_skip(); + void open_floppy_disk(int drv, const _TCHAR* file_path, int bank); + void close_floppy_disk(int drv); + bool is_floppy_disk_inserted(int drv); + void is_floppy_disk_protected(int drv, bool value); + bool is_floppy_disk_protected(int drv); + uint32_t is_floppy_disk_accessed(); + bool is_frame_skippable(); void update_config(); - void save_state(FILEIO* state_fio); - bool load_state(FILEIO* state_fio); + bool process_state(FILEIO* state_fio, bool loading); // ---------------------------------------- // for each device @@ -149,9 +168,9 @@ public: // devices DEVICE* get_device(int id); - DEVICE* dummy; - DEVICE* first_device; - DEVICE* last_device; + //DEVICE* dummy; + //DEVICE* first_device; + //DEVICE* last_device; }; #endif