OSDN Git Service

[VM][STATE] Use namespace {VMNAME} to separate per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / tk80bs / keyboard.h
index e704f54..d2fcf06 100644 (file)
@@ -1,5 +1,7 @@
 /*
        NEC TK-80BS (COMPO BS/80) Emulator 'eTK-80BS'
+       NEC TK-80 Emulator 'eTK-80'
+       NEC TK-85 Emulator 'eTK-85'
 
        Author : Takeda.Toshiya
        Date   : 2008.08.26 -
 
 #define SIG_KEYBOARD_COLUMN    0
 
+namespace TK80 {
+
 class KEYBOARD : public DEVICE
 {
 private:
-       DEVICE *d_pio_b, *d_pio_t, *d_cpu;
+#if defined(_TK80BS)
+       DEVICE *d_pio_b, *d_cpu;
        
-       const uint8* key_stat;
-       uint8 prev_type, prev_brk, prev_kana;
+       uint8_t prev_type, prev_brk, prev_kana;
        bool kana_lock;
-       uint32 column, kb_type;
+       uint32_t kb_type;
+#endif
+       
+       DEVICE *d_pio_t;
+       const uint8_t* key_stat;
+       
+       uint32_t column;
        
        void update_tk80();
        
 public:
-       KEYBOARD(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+       KEYBOARD(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       {
+               set_device_name(_T("Keyboard"));
+       }
        ~KEYBOARD() {}
        
        // common functions
        void initialize();
        void reset();
-       void write_signal(int id, uint32 data, uint32 mask);
-       uint32 intr_ack();
-       uint32 read_signal(int ch)
+       void write_signal(int id, uint32_t data, uint32_t mask);
+       uint32_t get_intr_ack();
+#if defined(_TK80BS)
+       uint32_t read_signal(int ch)
        {
                return kb_type & 3;
        }
-       void save_state(FILEIO* state_fio);
-       bool load_state(FILEIO* state_fio);
+#endif
+       bool process_state(FILEIO* state_fio, bool loading);
        
        // unique functions
+#if defined(_TK80BS)
        void set_context_pio_b(DEVICE* device)
        {
                d_pio_b = device;
        }
-       void set_context_pio_t(DEVICE* device)
-       {
-               d_pio_t = device;
-       }
        void set_context_cpu(DEVICE* device)
        {
                d_cpu = device;
        }
+#endif
+       void set_context_pio_t(DEVICE* device)
+       {
+               d_pio_t = device;
+       }
        void key_down(int code);
        void key_up(int code);
+       bool get_caps_locked()
+       {
+//             return caps_lock;
+               return true;
+       }
+       bool get_kana_locked()
+       {
+#if defined(_TK80BS)
+               return kana_lock;
+#else
+               return false;
+#endif
+       }
 };
 
+}
 #endif