OSDN Git Service

[VM][STATE] Use namespace {VMNAME} to separate per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / tk80bs / tk80bs.h
index 97c46ea..ac2e399 100644 (file)
 #endif
 #define USE_DIPSWITCH
 #define DIPSWITCH_DEFAULT      0
-#define USE_TAPE
 #if defined(_TK80BS)
-#define TAPE_BINARY_ONLY
+#define USE_TAPE                       2
+#else
+#define USE_TAPE                       1
 #endif
-
-#define USE_BINARY_FILE1
+#define USE_TAPE_BUTTON
+#define USE_BINARY_FILE                1
 #define NOTIFY_KEY_DOWN
+#define USE_KEY_LOCKED
 #define USE_ALT_F10_KEY
 #define USE_AUTO_KEY           5
 #define USE_AUTO_KEY_RELEASE   6
 #define USE_AUTO_KEY_NO_CAPS
-#define SUPPORT_ROMA_KANA_CONVERSION
-
-#if defined(_TK80BS)
-#define USE_SOUND_VOLUME       2
-#elif defined(_TK80) || defined(_TK85)
-#define USE_SOUND_VOLUME       3
-#endif
+#define USE_AUTO_KEY_NUMPAD
+#define USE_SOUND_VOLUME       4
 #define USE_DEBUGGER
 #define USE_STATE
+#define USE_CPU_I8080
 
 #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"),
-#if defined(_TK80) || defined(_TK85)
-       _T("CMT"),
-#endif
+       _T("Beep #1"), _T("Beep #2"), _T("CMT (Signal)"), _T("Noise (CMT)"),
 };
 #endif
 
@@ -190,51 +186,51 @@ class EMU;
 class DEVICE;
 class EVENT;
 
+class DATAREC;
 class I8080;
 #if defined(_TK80BS)
 class I8251;
 class IO;
-#elif defined(_TK80) || defined(_TK85)
-class DATAREC;
 #endif
 class I8255;
-//class MEMORY;
 class PCM1BIT;
 
+namespace TK80 {
 #if defined(_TK80BS)
-class CMT;
+       class CMT;
 #endif
-class DISPLAY;
-class KEYBOARD;
-class MEMBUS;
+       //class MEMORY;
+       class DISPLAY;
+       class KEYBOARD;
+       class MEMBUS;
+}
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
+       DATAREC* drec;
        I8080* cpu;
 #if defined(_TK80BS)
        I8251* sio_b;
        I8255* pio_b;
        IO* memio;
-#elif defined(_TK80) || defined(_TK85)
-       DATAREC* drec;
 #endif
        I8255* pio_t;
-//     MEMORY* memory;
+//     TK80::MEMORY* memory;
        PCM1BIT* pcm0;
        PCM1BIT* pcm1;
        
 #if defined(_TK80BS)
-       CMT* cmt;
+       TK80::CMT* cmt;
 #endif
-       DISPLAY* display;
-       KEYBOARD* keyboard;
-       MEMBUS* memory;
+       TK80::DISPLAY* display;
+       TK80::KEYBOARD* keyboard;
+       TK80::MEMBUS* memory;
        
        // memory
        uint8_t mon[0x800];
@@ -286,24 +282,30 @@ public:
        // 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 load_binary(int drv, const _TCHAR* file_path);
        void save_binary(int drv, const _TCHAR* file_path);
-       void play_tape(const _TCHAR* file_path);
-       void rec_tape(const _TCHAR* file_path);
-       void close_tape();
-       bool is_tape_inserted();
-#if defined(_TK80) || defined(_TK85)
-       bool is_tape_playing();
-       bool is_tape_recording();
-       int get_tape_position();
-#endif
+       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) {}
        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
@@ -311,9 +313,9 @@ public:
        
        // devices
        DEVICE* get_device(int id);
-       DEVICE* dummy;
-       DEVICE* first_device;
-       DEVICE* last_device;
+       //DEVICE* dummy;
+       //DEVICE* first_device;
+       //DEVICE* last_device;
        
 #if defined(_TK80BS)
        int draw_ranges;