OSDN Git Service

[VM][WIP] Use namespace to devices per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / msx / msx.h
index 58e8a48..233cb67 100644 (file)
 #endif
 #define HAS_AY_3_8910
 // for Flappy Limited '85
-#define YM2203_PORT_MODE       0x80
+#define AY_3_891X_PORT_MODE    0x80
 
 // device informations for win32
-#define USE_CART1
-#define USE_CART2
-#define USE_TAPE
-//#define USE_TAPE_PTR
+#define USE_CART               2
+#define USE_TAPE               1
+#define USE_TAPE_BUTTON
 #if defined(_PX7)
-#define USE_LASER_DISC
+#define USE_LASER_DISC         1
 #define USE_MOVIE_PLAYER
 #else
-#define USE_FD1
-#define USE_FD2
+#define USE_FLOPPY_DISK                2
 #endif
 #define USE_ALT_F10_KEY
 #define USE_AUTO_KEY           6
 #define USE_AUTO_KEY_RELEASE   10
 #if defined(_PX7)
-#define USE_SOUND_VOLUME       4
+#define USE_SOUND_VOLUME       5
 #else
-#define USE_SOUND_VOLUME       3
+//#define USE_SOUND_VOLUME     5
+#define USE_SOUND_VOLUME       4
 #endif
-#define USE_CRT_MONITOR_4_3 1
+#define SUPPORT_TV_RENDER
+#define USE_JOYSTICK
 #define USE_DEBUGGER
 #define USE_STATE
-#define USE_JOYSTICK
+#define USE_CPU_Z80
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
-       _T("PSG"), _T("Beep"), _T("CMT"),
+       _T("PSG"), _T("Beep"), _T("CMT (Signal)"),
 #if defined(_PX7)
        _T("LD-700"),
 #endif
+        _T("Noise (CMT)"),
 };
 #endif
 
@@ -98,7 +100,8 @@ class IO;
 class LD700;
 #endif
 class NOT;
-class YM2203;
+//class YM2203;
+class AY_3_891X;
 class PCM1BIT;
 #if defined(_MSX2)
 class RP5C01;
@@ -108,24 +111,25 @@ class TMS9918A;
 #endif
 class Z80;
 
-class JOYSTICK;
-class KEYBOARD;
-class MEMORY;
+namespace MSX {
+       class JOYSTICK;
+       class KEYBOARD;
+       class MEMORY;
 #if defined(_MSX2)
-class RTCIF;
-#endif
-class SLOT0;
-class SLOT1;
-class SLOT2;
-class SLOT3;
-
-class VM
+       class RTCIF;
+#endif
+       class SLOT0;
+       class SLOT1;
+       class SLOT2;
+       class SLOT3;
+}
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8255* pio;
@@ -134,7 +138,8 @@ protected:
        LD700* ldp;
 #endif
        NOT* not_remote;
-       YM2203* psg;
+//     YM2203* psg;
+       AY_3_891X* psg;
        PCM1BIT* pcm;
 #if defined(_MSX2)
        RP5C01* rtc;
@@ -144,16 +149,16 @@ protected:
 #endif
        Z80* cpu;
        
-       JOYSTICK* joystick;
-       KEYBOARD* keyboard;
-       MEMORY* memory;
+       MSX::JOYSTICK* joystick;
+       MSX::KEYBOARD* keyboard;
+       MSX::MEMORY* memory;
 #ifdef _MSX2
-       RTCIF* rtcif;
+       MSX::RTCIF* rtcif;
 #endif
-       SLOT0 *slot0;
-       SLOT1 *slot1;
-       SLOT2 *slot2;
-       SLOT3 *slot3;
+       MSX::SLOT0 *slot0;
+       MSX::SLOT1 *slot1;
+       MSX::SLOT2 *slot2;
+       MSX::SLOT3 *slot3;
        
 public:
        // ----------------------------------------
@@ -194,29 +199,37 @@ public:
        void open_cart(int drv, const _TCHAR* file_path);
        void close_cart(int drv);
        bool is_cart_inserted(int drv);
-       void play_tape(const _TCHAR* file_path);
-       void rec_tape(const _TCHAR* file_path);
-       void close_tape();
-       bool is_tape_inserted();
-       bool is_tape_playing();
-       bool is_tape_recording();
-       int get_tape_position();
+       void play_tape(int drv, const _TCHAR* file_path);
+       void rec_tape(int drv, const _TCHAR* file_path);
+       void close_tape(int drv);
+       bool is_tape_inserted(int drv);
+       bool is_tape_playing(int drv);
+       bool is_tape_recording(int drv);
+       int get_tape_position(int drv);
+       const _TCHAR* get_tape_message(int drv);
+       void push_play(int drv);
+       void push_stop(int drv);
+       void push_fast_forward(int drv);
+       void push_fast_rewind(int drv);
+       void push_apss_forward(int drv) {}
+       void push_apss_rewind(int drv) {}
 #if defined(_PX7)
-       void open_laser_disc(const _TCHAR* file_path);
-       void close_laser_disc();
-       bool is_laser_disc_inserted();
+       void open_laser_disc(int drv, const _TCHAR* file_path);
+       void close_laser_disc(int drv);
+       bool is_laser_disc_inserted(int drv);
+       uint32_t is_laser_disc_accessed();
 #else
        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();
 #endif
        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
@@ -224,9 +237,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