OSDN Git Service

[VM] Apply VM_TEMPLATE to all VMs.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 30 Jul 2018 06:15:41 +0000 (15:15 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Mon, 30 Jul 2018 06:15:41 +0000 (15:15 +0900)
345 files changed:
source/src/vm/bmjr/bmjr.cpp
source/src/vm/bmjr/bmjr.h
source/src/vm/bmjr/memory.h
source/src/vm/bubcom80/bubblecasette.h
source/src/vm/bubcom80/bubcom80.cpp
source/src/vm/bubcom80/bubcom80.h
source/src/vm/bubcom80/cmt.h
source/src/vm/bubcom80/display.h
source/src/vm/bubcom80/floppy.h
source/src/vm/bubcom80/keyboard.h
source/src/vm/bubcom80/membus.h
source/src/vm/bubcom80/rtc.h
source/src/vm/colecovision/colecovision.cpp
source/src/vm/colecovision/colecovision.h
source/src/vm/colecovision/keyboard.h
source/src/vm/colecovision/memory.h
source/src/vm/ex80/cmt.h
source/src/vm/ex80/display.h
source/src/vm/ex80/ex80.cpp
source/src/vm/ex80/ex80.h
source/src/vm/ex80/keyboard.h
source/src/vm/ex80/memory.h
source/src/vm/familybasic/apu.h
source/src/vm/familybasic/familybasic.cpp
source/src/vm/familybasic/familybasic.h
source/src/vm/familybasic/memory.h
source/src/vm/familybasic/ppu.h
source/src/vm/fm16beta/cmos.h
source/src/vm/fm16beta/fm16beta.cpp
source/src/vm/fm16beta/fm16beta.h
source/src/vm/fm16beta/keyboard.h
source/src/vm/fm16beta/mainbus.h
source/src/vm/fm16beta/sub.h
source/src/vm/fm16pi/fm16pi.cpp
source/src/vm/fm16pi/fm16pi.h
source/src/vm/fm16pi/sub.h
source/src/vm/fm7/fm7.h
source/src/vm/fmr30/cmos.h
source/src/vm/fmr30/floppy.h
source/src/vm/fmr30/fmr30.cpp
source/src/vm/fmr30/fmr30.h
source/src/vm/fmr30/keyboard.h
source/src/vm/fmr30/memory.h
source/src/vm/fmr30/rtc.h
source/src/vm/fmr30/scsi.h
source/src/vm/fmr30/serial.h
source/src/vm/fmr30/system.h
source/src/vm/fmr30/timer.h
source/src/vm/fmr50/bios.h
source/src/vm/fmr50/cmos.h
source/src/vm/fmr50/floppy.h
source/src/vm/fmr50/fmr50.cpp
source/src/vm/fmr50/fmr50.h
source/src/vm/fmr50/keyboard.h
source/src/vm/fmr50/memory.h
source/src/vm/fmr50/scsi.h
source/src/vm/fmr50/timer.h
source/src/vm/fmtowns/bios.h
source/src/vm/fmtowns/cmos.h
source/src/vm/fmtowns/floppy.h
source/src/vm/fmtowns/fmtowns.cpp
source/src/vm/fmtowns/fmtowns.h
source/src/vm/fmtowns/keyboard.h
source/src/vm/fmtowns/scsi.h
source/src/vm/fmtowns/timer.h
source/src/vm/fmtowns/towns_memory.h
source/src/vm/fmtowns/towns_sprite.h
source/src/vm/fmtowns/towns_vram.h
source/src/vm/fp1100/fdcpack.h
source/src/vm/fp1100/fp1100.cpp
source/src/vm/fp1100/fp1100.h
source/src/vm/fp1100/main.h
source/src/vm/fp1100/rampack.h
source/src/vm/fp1100/rompack.h
source/src/vm/fp1100/sub.h
source/src/vm/fp200/fp200.cpp
source/src/vm/fp200/fp200.h
source/src/vm/fp200/io.h
source/src/vm/gamegear/gamegear.cpp
source/src/vm/gamegear/gamegear.h
source/src/vm/gamegear/mastersystem.cpp
source/src/vm/gamegear/mastersystem.h
source/src/vm/gamegear/memory.h
source/src/vm/gamegear/system.h
source/src/vm/hc20/hc20.cpp
source/src/vm/hc20/hc20.h
source/src/vm/hc20/memory.h
source/src/vm/hc40/hc40.cpp
source/src/vm/hc40/hc40.h
source/src/vm/hc40/io.h
source/src/vm/hc40/memory.h
source/src/vm/hc80/hc80.cpp
source/src/vm/hc80/hc80.h
source/src/vm/hc80/io.h
source/src/vm/hc80/memory.h
source/src/vm/j3100/display.h
source/src/vm/j3100/dmareg.h
source/src/vm/j3100/floppy.h
source/src/vm/j3100/j3100.cpp
source/src/vm/j3100/j3100.h
source/src/vm/j3100/keyboard.h
source/src/vm/j3100/memory.h
source/src/vm/j3100/sasi.h
source/src/vm/j3100/slkeyboard.h
source/src/vm/j3100/slmemory.h
source/src/vm/j3100/slsystem.h
source/src/vm/j3100/system.h
source/src/vm/jr100/jr100.cpp
source/src/vm/jr100/jr100.h
source/src/vm/jr100/memory.h
source/src/vm/jr800/io.h
source/src/vm/jr800/jr800.cpp
source/src/vm/jr800/jr800.h
source/src/vm/jx/display.h
source/src/vm/jx/floppy.h
source/src/vm/jx/i286.h
source/src/vm/jx/jx.cpp
source/src/vm/jx/jx.h
source/src/vm/jx/keyboard.h
source/src/vm/jx/speaker.h
source/src/vm/m5/cmt.h
source/src/vm/m5/keyboard.h
source/src/vm/m5/m5.cpp
source/src/vm/m5/m5.h
source/src/vm/msx/joystick.h
source/src/vm/msx/kanjirom.cpp
source/src/vm/msx/kanjirom.h
source/src/vm/msx/keyboard.h
source/src/vm/msx/memory.h
source/src/vm/msx/memory_ex.h
source/src/vm/msx/msx.cpp
source/src/vm/msx/msx.h
source/src/vm/msx/msx_ex.cpp
source/src/vm/msx/msx_ex.h
source/src/vm/msx/printer.h
source/src/vm/msx/psg_stereo.cpp
source/src/vm/msx/psg_stereo.h
source/src/vm/msx/rtcif.h
source/src/vm/msx/scc.cpp
source/src/vm/msx/scc.h
source/src/vm/msx/sound_cart.cpp
source/src/vm/msx/sound_cart.h
source/src/vm/multi8/cmt.h
source/src/vm/multi8/display.h
source/src/vm/multi8/floppy.h
source/src/vm/multi8/kanji.h
source/src/vm/multi8/keyboard.h
source/src/vm/multi8/memory.h
source/src/vm/multi8/multi8.cpp
source/src/vm/multi8/multi8.h
source/src/vm/mycomz80a/display.h
source/src/vm/mycomz80a/keyboard.h
source/src/vm/mycomz80a/memory.h
source/src/vm/mycomz80a/mycomz80a.cpp
source/src/vm/mycomz80a/mycomz80a.h
source/src/vm/mz2500/calendar.h
source/src/vm/mz2500/cmt.h
source/src/vm/mz2500/crtc.h
source/src/vm/mz2500/floppy.h
source/src/vm/mz2500/interrupt.h
source/src/vm/mz2500/joystick.h
source/src/vm/mz2500/keyboard.h
source/src/vm/mz2500/memory.h
source/src/vm/mz2500/memory80b.h
source/src/vm/mz2500/mouse.h
source/src/vm/mz2500/mz1e26.h
source/src/vm/mz2500/mz1e30.h
source/src/vm/mz2500/mz1m01.h
source/src/vm/mz2500/mz1r12.h
source/src/vm/mz2500/mz1r13.h
source/src/vm/mz2500/mz1r37.h
source/src/vm/mz2500/mz2500.cpp
source/src/vm/mz2500/mz2500.h
source/src/vm/mz2500/mz80b.cpp
source/src/vm/mz2500/mz80b.h
source/src/vm/mz2500/printer.h
source/src/vm/mz2500/serial.h
source/src/vm/mz2500/timer.h
source/src/vm/mz2800/crtc.h
source/src/vm/mz2800/floppy.h
source/src/vm/mz2800/joystick.h
source/src/vm/mz2800/keyboard.h
source/src/vm/mz2800/memory.h
source/src/vm/mz2800/mouse.h
source/src/vm/mz2800/mz2800.cpp
source/src/vm/mz2800/mz2800.h
source/src/vm/mz2800/printer.h
source/src/vm/mz2800/reset.h
source/src/vm/mz2800/serial.h
source/src/vm/mz2800/sysport.h
source/src/vm/mz3500/keyboard.h
source/src/vm/mz3500/main.h
source/src/vm/mz3500/mz3500.cpp
source/src/vm/mz3500/mz3500.h
source/src/vm/mz3500/sub.h
source/src/vm/mz5500/display.h
source/src/vm/mz5500/keyboard.h
source/src/vm/mz5500/memory.h
source/src/vm/mz5500/mz5500.cpp
source/src/vm/mz5500/mz5500.h
source/src/vm/mz5500/sysport.h
source/src/vm/mz700/cmos.h
source/src/vm/mz700/emm.h
source/src/vm/mz700/floppy.h
source/src/vm/mz700/kanji.h
source/src/vm/mz700/keyboard.h
source/src/vm/mz700/memory.h
source/src/vm/mz700/mz700.cpp
source/src/vm/mz700/mz700.h
source/src/vm/mz700/psg.h
source/src/vm/mz700/quickdisk.h
source/src/vm/mz700/ramfile.h
source/src/vm/mz80k/keyboard.h
source/src/vm/mz80k/memory.h
source/src/vm/mz80k/mz80aif.h
source/src/vm/mz80k/mz80fio.h
source/src/vm/mz80k/mz80k.cpp
source/src/vm/mz80k/mz80k.h
source/src/vm/mz80k/printer.h
source/src/vm/n5200/display.h
source/src/vm/n5200/floppy.h
source/src/vm/n5200/keyboard.h
source/src/vm/n5200/memory.h
source/src/vm/n5200/n5200.cpp
source/src/vm/n5200/n5200.h
source/src/vm/n5200/system.h
source/src/vm/pasopia/display.h
source/src/vm/pasopia/floppy.h
source/src/vm/pasopia/keyboard.h
source/src/vm/pasopia/memory.h
source/src/vm/pasopia/pac2.cpp
source/src/vm/pasopia/pasopia.cpp
source/src/vm/pasopia/pasopia.h
source/src/vm/pasopia7/display.h
source/src/vm/pasopia7/floppy.h
source/src/vm/pasopia7/iobus.h
source/src/vm/pasopia7/iotrap.h
source/src/vm/pasopia7/keyboard.h
source/src/vm/pasopia7/memory.h
source/src/vm/pasopia7/pac2.cpp
source/src/vm/pasopia7/pac2.h
source/src/vm/pasopia7/pasopia7.cpp
source/src/vm/pasopia7/pasopia7.h
source/src/vm/pc100/crtc.h
source/src/vm/pc100/ioctrl.h
source/src/vm/pc100/kanji.h
source/src/vm/pc100/pc100.cpp
source/src/vm/pc100/pc100.h
source/src/vm/pc2001/io.h
source/src/vm/pc2001/pc2001.cpp
source/src/vm/pc2001/pc2001.h
source/src/vm/pc8201/cmt.h
source/src/vm/pc8201/keyboard.h
source/src/vm/pc8201/lcd.h
source/src/vm/pc8201/memory.h
source/src/vm/pc8201/pc8201.cpp
source/src/vm/pc8201/pc8201.h
source/src/vm/pc98ha/bios.h
source/src/vm/pc98ha/calendar.h
source/src/vm/pc98ha/floppy.h
source/src/vm/pc98ha/keyboard.h
source/src/vm/pc98ha/memory.h
source/src/vm/pc98ha/note.h
source/src/vm/pc98ha/pc98ha.cpp
source/src/vm/pc98ha/pc98ha.h
source/src/vm/phc20/memory.h
source/src/vm/phc20/phc20.cpp
source/src/vm/phc20/phc20.h
source/src/vm/phc25/joystick.h
source/src/vm/phc25/keyboard.h
source/src/vm/phc25/memory.h
source/src/vm/phc25/phc25.cpp
source/src/vm/phc25/phc25.h
source/src/vm/phc25/system.h
source/src/vm/pv1000/joystick.h
source/src/vm/pv1000/psg.h
source/src/vm/pv1000/pv1000.cpp
source/src/vm/pv1000/pv1000.h
source/src/vm/pv1000/vdp.h
source/src/vm/pv2000/cmt.h
source/src/vm/pv2000/keyboard.h
source/src/vm/pv2000/printer.h
source/src/vm/pv2000/pv2000.cpp
source/src/vm/pv2000/pv2000.h
source/src/vm/pyuta/memory.h
source/src/vm/pyuta/pyuta.cpp
source/src/vm/pyuta/pyuta.h
source/src/vm/qc10/display.h
source/src/vm/qc10/floppy.h
source/src/vm/qc10/keyboard.h
source/src/vm/qc10/memory.h
source/src/vm/qc10/mfont.h
source/src/vm/qc10/qc10.cpp
source/src/vm/qc10/qc10.h
source/src/vm/rx78/cmt.h
source/src/vm/rx78/keyboard.h
source/src/vm/rx78/memory.h
source/src/vm/rx78/printer.h
source/src/vm/rx78/rx78.cpp
source/src/vm/rx78/rx78.h
source/src/vm/rx78/vdp.h
source/src/vm/sc3000/keyboard.h
source/src/vm/sc3000/memory.h
source/src/vm/sc3000/sc3000.cpp
source/src/vm/sc3000/sc3000.h
source/src/vm/scv/io.h
source/src/vm/scv/memory.h
source/src/vm/scv/scv.cpp
source/src/vm/scv/scv.h
source/src/vm/scv/sound.h
source/src/vm/scv/vdp.h
source/src/vm/smb80te/memory.h
source/src/vm/smb80te/smb80te.cpp
source/src/vm/smb80te/smb80te.h
source/src/vm/smc777/memory.h
source/src/vm/smc777/smc777.cpp
source/src/vm/smc777/smc777.h
source/src/vm/tk80bs/cmt.h
source/src/vm/tk80bs/display.cpp
source/src/vm/tk80bs/display.h
source/src/vm/tk80bs/keyboard.h
source/src/vm/tk80bs/membus.h
source/src/vm/tk80bs/memory.h
source/src/vm/tk80bs/tk80bs.cpp
source/src/vm/tk80bs/tk80bs.h
source/src/vm/x07/io.h
source/src/vm/x07/x07.cpp
source/src/vm/x07/x07.h
source/src/vm/yalky/io.h
source/src/vm/yalky/yalky.cpp
source/src/vm/yalky/yalky.h
source/src/vm/yis/calendar.h
source/src/vm/yis/display.h
source/src/vm/yis/floppy.h
source/src/vm/yis/keyboard.h
source/src/vm/yis/mapper.h
source/src/vm/yis/sound.h
source/src/vm/yis/yis.cpp
source/src/vm/yis/yis.h
source/src/vm/ys6464a/display.h
source/src/vm/ys6464a/keyboard.h
source/src/vm/ys6464a/ys6464a.cpp
source/src/vm/ys6464a/ys6464a.h
source/src/vm/z80tvgame/z80tvgame.cpp
source/src/vm/z80tvgame/z80tvgame.h

index 575fa1b..42f5b61 100644 (file)
@@ -27,7 +27,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 8ceb86b..dab4978 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -46,8 +47,6 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
-
 class EMU;
 class DEVICE;
 class EVENT;
@@ -58,13 +57,13 @@ class MC6820;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        MC6800* cpu;
@@ -138,9 +137,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
index 5c4ded4..ddc0751 100644 (file)
@@ -58,7 +58,7 @@ private:
        int volume_l, volume_r;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                volume_l = volume_r = 1024;
                set_device_name(_T("Memory Bus"));
index 3b874a0..a988ab7 100644 (file)
@@ -103,7 +103,7 @@ private:
        bool write_one_page(void);
        
 public:
-       BUBBLECASETTE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       BUBBLECASETTE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                fio = NULL;
                memset(image_path, 0x00, _MAX_PATH * sizeof(_TCHAR));
index 6c13b9b..8498521 100644 (file)
@@ -39,7 +39,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 5ad4f2f..6026722 100644 (file)
@@ -48,6 +48,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -55,7 +56,7 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -77,14 +78,14 @@ class KEYBOARD;
 class MEMBUS;
 class RTC;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
-       csp_state_utils *state_entry;
+       //EVENT* event;
+       //csp_state_utils *state_entry;
        
        IO* io;
        LS393* flipflop;
@@ -167,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
index 4b7c039..30667c1 100644 (file)
@@ -34,7 +34,7 @@ private:
        void release_tape();
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index 5a04ebf..0ac2965 100644 (file)
@@ -111,7 +111,7 @@ private:
        void draw_graph();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                for(int i = 0; i < 4; i++) {
                        dmac.ch[i].io = parent_vm->dummy;
index d408c15..63d5a8b 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_fdc;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index a05ba2d..ec25048 100644 (file)
@@ -21,7 +21,7 @@ private:
        const uint32_t* joy_stat;
        
 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"));
        }
index 623777c..f42fcf4 100644 (file)
@@ -29,7 +29,7 @@ private:
        void update_bank();
        
 public:
-       MEMBUS(VM* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
+       MEMBUS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index b78ff9c..2e9f10c 100644 (file)
@@ -22,7 +22,7 @@ private:
        uint8_t ctrl;
        
 public:
-       RTC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RTC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC"));
        }
index e2352c9..647ded0 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index c6aa85e..7e2100a 100644 (file)
@@ -32,6 +32,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -39,7 +40,7 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -52,14 +53,14 @@ class Z80;
 class KEYBOARD;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        IO* io;
        SN76489AN* psg;
@@ -118,9 +119,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
index 0db69dd..b6b249b 100644 (file)
@@ -23,7 +23,7 @@ private:
        const uint32_t* joy_stat;
        bool tenkey;
 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"));
        }
index f45d16e..11a3145 100644 (file)
@@ -30,7 +30,7 @@ private:
        bool inserted;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 81fe509..85e69ad 100644 (file)
@@ -33,7 +33,7 @@ private:
        void release_tape();
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index b31bc78..7ab96d6 100644 (file)
@@ -29,7 +29,7 @@ private:
        bool dma;
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 529c306..87502e1 100644 (file)
@@ -31,7 +31,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index ff51d6b..4f4f404 100644 (file)
@@ -53,6 +53,7 @@ SW3-1/2       ON ,ON  = 8000H-81FFH
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -110,7 +111,7 @@ const struct {
        {8, 8, 8 * 6 * 12, 8 * 2 * 29}, // CRT
 };
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -126,13 +127,13 @@ class DISPLAY;
 class KEYBOARD;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        I8251* sio;
        I8255* pio;
@@ -198,9 +199,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
index cbe7949..121492c 100644 (file)
@@ -26,7 +26,7 @@ private:
        void update_kb();
        
 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"));
        }
index abc99e7..a421805 100644 (file)
@@ -30,7 +30,7 @@ private:
        uint8_t* rbank[64];
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index deeda51..e10cb50 100644 (file)
@@ -163,7 +163,7 @@ private:
        void decl_state_queue(int num);
        
 public:
-       APU(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       APU(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                volume_l = volume_r = 1024;
                set_device_name(_T("APU"));
index b52d505..23e509c 100644 (file)
@@ -30,7 +30,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // check configs
 //     boot_mode = config.boot_mode;
index 4ca7c65..315956f 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -99,14 +100,14 @@ class MEMORY;
 class APU;
 class PPU;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        N2A03* cpu;
@@ -178,9 +179,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
index fb8afd2..57941d3 100644 (file)
@@ -97,7 +97,7 @@ private:
        
        void decl_state_header(header_t *p);
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 1148968..6fad92e 100644 (file)
@@ -63,7 +63,7 @@ private:
        void decl_state_header(header_t *p);
        
 public:
-       PPU(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PPU(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("PPU"));
        }
index c09f356..4afc759 100644 (file)
@@ -21,7 +21,7 @@ private:
        bool modified;
        
 public:
-       CMOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMOS RAM"));
        }
index 80b40a7..1b1ea10 100644 (file)
@@ -39,7 +39,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 152c101..a32cd05 100644 (file)
@@ -61,6 +61,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -90,14 +91,14 @@ class KEYBOARD;
 class MAINBUS;
 class SUB;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        HD46505* crtc;
        I8237* dma;
@@ -131,7 +132,7 @@ public:
        
        // drive virtual machine
        void reset();
-       void notify_power_off();
+       //void notify_power_off();
        void run();
        
 #ifdef USE_DEBUGGER
@@ -174,9 +175,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
index a0794f8..f84edc8 100644 (file)
@@ -61,7 +61,7 @@ private:
        uint8_t table[256];
        
 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"));
        }
index 264ab94..da03d7b 100644 (file)
@@ -97,7 +97,7 @@ private:
        void update_int7();
        
 public:
-       MAINBUS(VM* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
+       MAINBUS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
        {
                set_device_name(_T("Main System"));
        }
index c44e1c9..b09957b 100644 (file)
@@ -91,7 +91,7 @@ private:
        uint32_t read_memory(uint32_t addr);
        
 public:
-       SUB(VM* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
+       SUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
        {
                set_device_name(_T("Sub System"));
        }
index ddfa8ab..d4b770f 100644 (file)
@@ -36,7 +36,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 2b4f236..65b390d 100644 (file)
@@ -41,6 +41,8 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
+
 #define USE_CPU_I286
 
 #ifdef USE_SOUND_VOLUME
@@ -68,14 +70,14 @@ class PCM1BIT;
 
 class SUB;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        I8251* sio;
        I8253* pit;
@@ -153,9 +155,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
index e5b31e8..43b8fbf 100644 (file)
@@ -31,7 +31,7 @@ private:
        uint8_t *vram;
        
 public:
-       SUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Sub System"));
        }
index a8f7ebb..8984266 100644 (file)
@@ -455,7 +455,8 @@ class FM7_JCOMMCARD;
 #endif
 class csp_state_utils;
 
-class VM : public VM_TEMPLATE {
+class VM : public VM_TEMPLATE
+{
 protected:
 //     EMU* emu;
        
index de1ce35..f2e3a0d 100644 (file)
@@ -21,7 +21,7 @@ private:
        bool modified;
        
 public:
-       CMOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMOS RAM"));
        }
index c3b02e4..9b44c84 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_intr();
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index ebd0c76..cb44959 100644 (file)
@@ -48,7 +48,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 326abda..e68bab4 100644 (file)
@@ -52,6 +52,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -90,13 +91,13 @@ class SERIAL;
 class SYSTEM;
 class TIMER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        I8237* dma;
        I8251* sio_kb;
@@ -194,9 +195,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
index b6a7d4b..f92ec89 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint8_t table[256];
        
 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"));
        }
index f4bbfee..fc116f7 100644 (file)
@@ -54,7 +54,7 @@ private:
        void draw_cg();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index b031fa9..9039c14 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_checksum();
        void update_intr();
 public:
-       RTC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RTC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC"));
        }
index 5d50a2c..f516206 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool phase_status, eop_status;
        
 public:
-       SCSI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       SCSI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                set_device_name(_T("SCSI I/F"));
        }
        ~SCSI() {}
index f828600..439ffb3 100644 (file)
@@ -40,7 +40,7 @@ private:
        void update_intr(int ch);
        
 public:
-       SERIAL(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SERIAL(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Serial I/F"));
        }
index d81624d..fb4cca9 100644 (file)
@@ -21,7 +21,7 @@ private:
        uint8_t nmistat, nmimask;
        
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 511f814..48b0349 100644 (file)
@@ -26,7 +26,7 @@ private:
        void update_intr();
        
 public:
-       TIMER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       TIMER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Timer I/F"));
        }
index 6a2adc5..9097b88 100644 (file)
@@ -42,7 +42,7 @@ private:
        int scsi_blocks[USE_HARD_DISK];
        
 public:
-       BIOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       BIOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                for(int i = 0; i < MAX_DRIVE; i++) disk[i] = NULL;
                //for(int i = 0; i < USE_HARD_DISK; i++) harddisk[i] = NULL;
                set_device_name(_T("Pseudo BIOS"));
index 4908a11..89461fd 100644 (file)
@@ -27,7 +27,7 @@ private:
        uint8_t bank;
        
 public:
-       CMOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMOS RAM"));
        }
index a695ee9..15fbd62 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_intr();
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 28821a0..e0025df 100644 (file)
@@ -52,7 +52,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
 /*
        Machine ID & CPU ID
index 6e7a086..80872be 100644 (file)
@@ -97,6 +97,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -139,14 +140,14 @@ class MEMORY;
 class SCSI;
 class TIMER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        HD46505* crtc;
 #if defined(_FMR60)
@@ -245,9 +246,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
index f38f57f..582fd66 100644 (file)
@@ -60,7 +60,7 @@ private:
        uint8_t table[256];
        
 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"));
        }
index f988a75..bbc815a 100644 (file)
@@ -111,7 +111,7 @@ private:
        void draw_cg();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) 
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) 
        {
                set_device_name(_T("Memory Bus"));
        }
index ddb96f2..a33b15e 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool irq_status;
        
 public:
-       SCSI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SCSI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
        
                set_device_name(_T("SCSI I/F"));
index 9c1fe95..b9b0566 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_intr();
        
 public:
-       TIMER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       TIMER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Timer I/F"));
        }
index 056a6be..12c5e83 100644 (file)
@@ -38,7 +38,7 @@ private:
        int scsi_blocks[MAX_SCSI];
        
 public:
-       BIOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       BIOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                set_device_name(_T("PSEUDO BIOS"));
        }
        ~BIOS() {}
index 787d0f8..b1b5371 100644 (file)
@@ -27,7 +27,7 @@ private:
        uint8_t bank;
        
 public:
-       CMOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+       CMOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
        ~CMOS() {}
        
        // common functions
index 70a9249..d8c8f5b 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_intr();
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
        ~FLOPPY() {}
        
        // common functions
index 511a083..0133c9d 100644 (file)
@@ -57,7 +57,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
 /*
        Machine ID & CPU ID
index 6c71707..3b7b3e5 100644 (file)
@@ -8,8 +8,8 @@
        [ virtual machine ]
 */
 
-#ifndef _FMR50_H_
-#define _FMR50_H_
+#ifndef _FMTOWNS_H_
+#define _FMTOWNS_H_
 
 #if defined(_FMR50)
 #if defined(HAS_I286)
@@ -97,6 +97,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -143,13 +144,13 @@ class SCSI_HDD;
 class SCSI_CDROM;
 class TIMER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        TOWNS_CRTC *crtc;
        
@@ -237,9 +238,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
index 5c77135..47306a3 100644 (file)
@@ -60,7 +60,7 @@ private:
        uint8_t table[256];
        
 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) {}
        ~KEYBOARD() {}
        
        // common functions
index 22d738f..3f27b11 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool irq_status;
        
 public:
-       SCSI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       SCSI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                set_device_name(_T("FMR50 SCSI"));
        }
        ~SCSI() {}
index e2b6c27..1fbbd52 100644 (file)
@@ -30,7 +30,7 @@ private:
        void update_intr();
        
 public:
-       TIMER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
+       TIMER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
        ~TIMER() {}
        
        // common functions
index 3cce6fc..9f45717 100644 (file)
@@ -110,7 +110,7 @@ private:
        
        void update_dma_addr_mask();
 public:
-       TOWNS_MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       TOWNS_MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                set_device_name(_T("MEMORY"));
                d_vram = NULL;
                d_crtc = NULL;
index 57801b5..282dcb9 100644 (file)
@@ -101,7 +101,7 @@ protected:
        void do_put_sprite(int num);
        
 public:
-       TOWNS_SPRITE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       TOWNS_SPRITE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                set_device_name(_T("SPRITE"));
                vram_head = NULL;
                framebuffer = NULL;
index 6cb60bb..d2ffc5a 100644 (file)
@@ -107,7 +107,7 @@ protected:
        bool has_hardware_blending;
        // End.
 public:
-       TOWNS_VRAM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       TOWNS_VRAM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                memset(vram, 0x00, sizeof(vram));
                render_buffer = NULL;
index a343d40..ea6e878 100644 (file)
@@ -21,7 +21,7 @@ private:
        DEVICE *d_fdc;
        
 public:
-       FDCPACK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FDCPACK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("FDC Pack"));
        }
index 3eae9be..1476cff 100644 (file)
@@ -35,7 +35,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 0cd7b31..17678ab 100644 (file)
@@ -51,6 +51,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -58,7 +59,7 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -76,14 +77,14 @@ class FDCPACK;
 class RAMPACK;
 class ROMPACK;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        DATAREC* drec;
@@ -174,9 +175,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
index 0d32a82..3d38757 100644 (file)
@@ -52,7 +52,7 @@ private:
        void update_intr();
        
 public:
-       MAIN(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MAIN(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                intr_mask = intr_request = intr_in_service = 0;
                set_device_name(_T("Main CPU Bus"));
index 31830c3..5c84461 100644 (file)
@@ -21,7 +21,7 @@ private:
        bool modified;
        
 public:
-       RAMPACK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RAMPACK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RAM Pack"));
        }
index 9f65dc2..5a6083c 100644 (file)
@@ -20,7 +20,7 @@ private:
        uint8_t rom[0x8000];
        
 public:
-       ROMPACK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       ROMPACK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("ROM Pack"));
        }
index 9c48964..06d9234 100644 (file)
@@ -168,7 +168,7 @@ private:
        void key_update();
        
 public:
-       SUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Sub CPU Bus"));
        }
index 924123e..461c80e 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 868100e..b06a0f4 100644 (file)
@@ -42,6 +42,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -61,14 +62,14 @@ class RP5C01;
 
 class IO;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8080* cpu;
@@ -145,9 +146,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
index b99c97c..2206f59 100644 (file)
@@ -150,7 +150,7 @@ private:
        void update_sid();
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 41e5319..fe2d90f 100644 (file)
@@ -35,7 +35,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index e91835b..179be18 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -63,13 +64,13 @@ class KEYBOARD;
 class MEMORY;
 class SYSTEM;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8251* sio;
@@ -151,9 +152,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
index 529d299..0404feb 100644 (file)
@@ -36,7 +36,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index e865af2..0863637 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -66,13 +67,13 @@ class KEYBOARD;
 class MEMORY;
 class SYSTEM;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
 ///    DATAREC* drec;
 ///    I8251* sio;
@@ -155,8 +156,8 @@ public:
        
        // devices
        DEVICE* get_device(int id);
-       DEVICE* dummy;
-       DEVICE* first_device;
-       DEVICE* last_device;
+       //DEVICE* dummy;
+       //DEVICE* first_device;
+       //DEVICE* last_device;
 };
 #endif
index 51e83a8..6a396e8 100644 (file)
@@ -36,7 +36,7 @@ private:
        void sms_mapper_w(uint32_t addr, uint32_t data);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 238ebc9..6e8a165 100644 (file)
@@ -21,7 +21,7 @@ private:
        bool tenkey;
 
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index be21e06..5eaa10f 100644 (file)
@@ -34,7 +34,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 8471ed7..3382bec 100644 (file)
@@ -45,6 +45,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -69,14 +70,14 @@ class Z80SIO;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        HD146818P* rtc;
@@ -152,9 +153,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
index 75cd198..6f47b67 100644 (file)
@@ -92,7 +92,7 @@ private:
        void send_to_main(uint8_t val);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 0771683..51333f9 100644 (file)
@@ -29,7 +29,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 6c6e52b..fe104db 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -58,14 +59,14 @@ class Z80;
 class IO;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        DATAREC* drec;
@@ -146,9 +147,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
index a92a96b..a83e235 100644 (file)
@@ -71,7 +71,7 @@ private:
        scrntype_t pd, pb;
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index ac7e6be..2e6644c 100644 (file)
@@ -32,7 +32,7 @@ private:
        void set_bank(uint32_t val);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 99738ae..df20034 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 57e1eab..1fdd5f9 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -58,14 +59,14 @@ class Z80;
 class IO;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        I8251* sio;
@@ -132,9 +133,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
index 9b8c1e8..7af8846 100644 (file)
@@ -112,7 +112,7 @@ private:
 
        int tmp_iramdisk_size;
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 0991467..0c466fd 100644 (file)
@@ -30,7 +30,7 @@ private:
        void set_bank(uint32_t val);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 49a2fc2..bca24b9 100644 (file)
@@ -40,7 +40,7 @@ private:
        void draw_graph_640x400();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 8e26b74..178b2a8 100644 (file)
@@ -24,7 +24,7 @@ private:
 #endif
        
 public:
-       DMAREG(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DMAREG(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("DMA Register"));
        }
index 989ab5c..2bff5ea 100644 (file)
@@ -25,7 +25,7 @@ private:
        uint8_t ctrl_reg;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index cd6b447..db71176 100644 (file)
@@ -55,7 +55,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 5607a7e..339773a 100644 (file)
@@ -61,6 +61,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -99,13 +100,13 @@ class MEMORY;
 class SASI;
 class SYSTEM;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        HD46505* crtc;
        I8237* dma;
@@ -189,9 +190,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
index 85fecda..738e3ba 100644 (file)
@@ -34,7 +34,7 @@ private:
        void process_cmd();
        
 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"));
        }
index 1af5c1a..68e7166 100644 (file)
@@ -33,7 +33,7 @@ private:
        void update_ems(int page);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 7576c15..9c9ba49 100644 (file)
@@ -52,7 +52,7 @@ private:
        drive_t drive[2];
        
 public:
-       SASI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SASI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("SASI I/F"));
        }
index d836b0c..44d565d 100644 (file)
@@ -28,7 +28,7 @@ private:
        bool key_read;
        
 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"));
        }
index b8277e9..410ade4 100644 (file)
@@ -46,7 +46,7 @@ private:
        void update_ems(int page);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 3c3ecad..de337c2 100644 (file)
@@ -20,7 +20,7 @@ private:
        int nmi_mask;
        
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 9a0d6e1..f63b455 100644 (file)
@@ -24,7 +24,7 @@ private:
        uint8_t status;
        
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 3fe95ef..b9119bf 100644 (file)
@@ -30,7 +30,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 5f1d297..3d880ff 100644 (file)
@@ -103,6 +103,7 @@ static const int vm_auto_key_table_base[][2] = {
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -124,14 +125,14 @@ class SY6522;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        //MC6800* cpu;
@@ -209,9 +210,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
index 94035f8..452eeb9 100644 (file)
@@ -40,7 +40,7 @@ private:
        scrntype_t palette_pc[2];
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 6ef9d5a..33097c9 100644 (file)
@@ -23,7 +23,7 @@ private:
        HD44102 *d_lcd[8];
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Mapped I/O"));
        }
index 592052b..c9b2328 100644 (file)
@@ -30,7 +30,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 88ad341..8354170 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -58,14 +59,14 @@ class PCM1BIT;
 
 class IO;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        HD44102* lcd[8];
@@ -139,9 +140,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
index 4af6c7a..f20a0f6 100644 (file)
@@ -57,7 +57,7 @@ private:
        void draw_graph_360x512_4col();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index dc1708e..cd6d3a5 100644 (file)
@@ -22,7 +22,7 @@ private:
        int register_id;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 340e2d6..963ffcb 100644 (file)
@@ -37,7 +37,7 @@ private:
        void *opaque;
        
 public:
-       I286(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       I286(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
 #ifdef I86_PSEUDO_BIOS
                d_bios = NULL;
index 823d49f..cafbf4a 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index ec0b025..ebf76c5 100644 (file)
@@ -50,6 +50,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -78,13 +79,13 @@ class FLOPPY;
 class KEYBOARD;
 class SPEAKER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        HD46505* crtc;
        I8251* sio;
@@ -163,9 +164,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
index 11690fa..98c81be 100644 (file)
@@ -33,7 +33,7 @@ private:
        uint8_t nmi_reg;
        
 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"));
        }
index fc9f491..998087c 100644 (file)
@@ -22,7 +22,7 @@ private:
        DEVICE *d_pcm, *d_psg;
        
 public:
-       SPEAKER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SPEAKER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Speaker"));
        }
index c71c84c..dbfc9ef 100644 (file)
@@ -34,7 +34,7 @@ private:
        const uint8_t* key_stat;
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index 4830027..5ba1517 100644 (file)
@@ -20,7 +20,7 @@ private:
        const uint8_t* key_stat;
        const uint32_t* joy_stat;
 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"));
        }
index 2c6281d..999cac0 100644 (file)
@@ -32,7 +32,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index a344939..60c8926 100644 (file)
@@ -40,6 +40,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -63,14 +64,14 @@ class Z80CTC;
 class CMT;
 class KEYBOARD;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        IO* io;
@@ -156,9 +157,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
index 1ffdb06..d0e2b76 100644 (file)
@@ -28,7 +28,7 @@ private:
        int select;
        
 public:
-       JOYSTICK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       JOYSTICK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Joystick I/F"));
        }
index 73a2210..cfd4cec 100644 (file)
@@ -12,7 +12,7 @@
 #include "kanjirom.h"
 #include "../../fileio.h"
 
-KANJIROM::KANJIROM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+KANJIROM::KANJIROM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
 {
        index = 0;
        memset(rom, 0xff, sizeof(rom));
index 77d23bc..43ec67e 100644 (file)
@@ -23,7 +23,7 @@ private:
        int index;
 
 public:
-       KANJIROM(VM* parent_vm, EMU* parent_emu);
+       KANJIROM(VM_TEMPLATE* parent_vm, EMU* parent_emu);
        ~KANJIROM() {}
        
        // common functions
index 78fdb24..885ddbf 100644 (file)
@@ -33,7 +33,7 @@ private:
        void update_keyboard();
        
 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"));
        }
index a94d9d5..ccf2f92 100644 (file)
@@ -43,7 +43,7 @@ private:
        uint8_t ram[0x8000];
 #endif 
 public:
-       SLOT0(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT0(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Slot #0"));
        }
@@ -73,7 +73,7 @@ private:
 #endif
        
 public:
-       SLOT1(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT1(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Slot #1"));
        }
@@ -116,7 +116,7 @@ private:
        bool pc4, mute_l, mute_r;
        
 public:
-       SLOT2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT2(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Slot #2"));
        }
@@ -157,7 +157,7 @@ private:
        uint8_t rom[0x8000];
        
 public:
-       SLOT2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT2(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Slot #2"));
        }
@@ -185,7 +185,7 @@ private:
        uint8_t mapper[4];
        
 public:
-       SLOT3(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT3(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Slot #3"));
        }
@@ -223,7 +223,7 @@ private:
        void update_map(uint32_t val);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index cdd479f..3edc1d8 100644 (file)
@@ -48,7 +48,7 @@ private:
        uint8_t ram[0x8000];
 #endif
 public:
-       SLOT_MAINROM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_MAINROM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Main ROM"));
        }
@@ -85,7 +85,7 @@ private:
        bool inserted;
        
 public:
-       SLOT_CART(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_CART(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
 #ifdef USE_MEGAROM
        event_register_id = -1;
@@ -136,7 +136,7 @@ private:
        uint8_t mapper[2];
        
 public:
-       SLOT_MSXDOS2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_MSXDOS2(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MSX-DOS2"));
        }
@@ -173,7 +173,7 @@ private:
        bool pc4, mute_l, mute_r;
        
 public:
-       SLOT_LDC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_LDC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("LDC Control"));
        }
@@ -223,7 +223,7 @@ private:
 #endif
        
 public:
-       SLOT_SUBROM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_SUBROM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Sub ROM"));
        }
@@ -249,7 +249,7 @@ private:
        uint8_t rom[0x4000];
        
 public:
-       SLOT_FDD_PATCH(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_FDD_PATCH(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("FDD I/F"));
        }
@@ -276,7 +276,7 @@ private:
        uint8_t mapper[4];
        
 public:
-       SLOT_MAPPERRAM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_MAPPERRAM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Mapper RAM"));
        }
@@ -302,7 +302,7 @@ private:
        uint8_t ram[0x10000];
        
 public:
-       SLOT_RAM64K(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_RAM64K(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RAM 64KB"));
        }
@@ -332,7 +332,7 @@ private:
        const _TCHAR* m_filename;
        
 public:
-       SLOT_FIRMWARE32K(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_FIRMWARE32K(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Firmware 32KB"));
        }
@@ -364,7 +364,7 @@ private:
        uint8_t rom[0x4000];
        
 public:
-       SLOT_MSXMUSIC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SLOT_MSXMUSIC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MSX-MUSIC"));
        }
@@ -402,7 +402,7 @@ private:
        void update_map(uint32_t val);
        
 public:
-       MEMORY_EX(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY_EX(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                ssl[0] = ssl[1] = ssl[2] = ssl[3] = 0;
                expanded[0] = expanded[1] = expanded[2] = expanded[3] = false;
index 1a2d865..b22b6a3 100644 (file)
@@ -51,7 +51,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index ffb7d40..e0f22d8 100644 (file)
@@ -77,6 +77,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -121,13 +122,13 @@ class SLOT1;
 class SLOT2;
 class SLOT3;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8255* pio;
@@ -236,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
index 1677d1b..08a36a7 100644 (file)
@@ -74,7 +74,7 @@ private:
        uint8_t port;
        
 public:
-       PORT_F4(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
+       PORT_F4(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {
                port = 0;
        }
        ~PORT_F4() {}
@@ -96,7 +96,7 @@ public:
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 1d0fe60..0def639 100644 (file)
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -213,7 +214,7 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -279,14 +280,14 @@ class SLOT_MSXMUSIC;
 #endif
 
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8255* pio;
@@ -431,9 +432,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
index c5911b3..1bc1b3f 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_prn;
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index 1f78b8a..96ef82f 100644 (file)
@@ -13,7 +13,7 @@
 #define USE_PSG_STEREO_REALLY
 #define DECIBEL_MIN (-120)
 
-PSG_STEREO::PSG_STEREO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+PSG_STEREO::PSG_STEREO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
 {
 #if defined(USE_PSG_STEREO_REALLY)
 //     d_psg[1] = new YM2203(parent_vm, parent_emu);
index 4e507ab..b2ab0d9 100644 (file)
@@ -31,7 +31,7 @@ private:
        int m_decibel_r;
 
 public:
-       PSG_STEREO(VM* parent_vm, EMU* parent_emu);
+       PSG_STEREO(VM_TEMPLATE* parent_vm, EMU* parent_emu);
        ~PSG_STEREO() {}
        
        // common functions
index 080f341..1dc9f22 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint8_t adrs;
        
 public:
-       RTCIF(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RTCIF(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC I/F"));
        }
index c092f80..ef9be3f 100644 (file)
@@ -501,7 +501,7 @@ SCC_set_type (SCC * scc, uint32_t type)
 */
 
 
-SCC::SCC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+SCC::SCC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
 {
        emu2212 = SCC_new(3579545, 48000);
        volume_l = volume_r = 1024;
index caf3564..9b43f06 100644 (file)
@@ -84,7 +84,7 @@ private:
        void decl_state_scc();
        
 public:
-       SCC(VM* parent_vm, EMU* parent_emu);
+       SCC(VM_TEMPLATE* parent_vm, EMU* parent_emu);
        ~SCC() {}
        
        // common functions
index 67530ab..5f9afa9 100644 (file)
@@ -10,7 +10,7 @@
 
 #include "sound_cart.h"
 
-SOUND_CART::SOUND_CART(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+SOUND_CART::SOUND_CART(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
 {
        d_chip[SOUND_CHIP_SCC] = new SCC(parent_vm, parent_emu);
        enable_chip[SOUND_CHIP_SCC] = false;
index 700ecd8..86356bd 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool enable_chip[SOUND_CHIP_MAX+1];
 
 public:
-       SOUND_CART(VM* parent_vm, EMU* parent_emu);
+       SOUND_CART(VM_TEMPLATE* parent_vm, EMU* parent_emu);
        ~SOUND_CART() {}
        
        // common functions
index e871e96..97c6633 100644 (file)
@@ -34,7 +34,7 @@ private:
        void release_tape();
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index fed76f0..05495c3 100644 (file)
@@ -41,7 +41,7 @@ private:
        void draw_text_normal();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index f3df6df..fae509e 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool drq;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index acfa6e0..758a114 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint32_t ptr;
        
 public:
-       KANJI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       KANJI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Kanji ROM"));
        }
index 08b20a4..7fdc117 100644 (file)
@@ -25,7 +25,7 @@ private:
        const uint8_t* key_stat;
        
 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"));
        }
index 1649d66..426463c 100644 (file)
@@ -36,7 +36,7 @@ private:
        uint8_t map1, map2;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 6f42cf4..40ea7ba 100644 (file)
@@ -41,7 +41,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 2fc12b8..7c6f323 100644 (file)
@@ -50,6 +50,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -81,14 +82,14 @@ class KANJI;
 class KEYBOARD;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        HD46505* crtc;
@@ -170,9 +171,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
index 823927f..549a5d8 100644 (file)
@@ -37,7 +37,7 @@ private:
        void draw_80column();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index d1f7314..6d26e3c 100644 (file)
@@ -28,7 +28,7 @@ private:
        int event_cnt;
        
 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"));
        }
index 92bdafd..68129d3 100644 (file)
@@ -31,7 +31,7 @@ private:
        void update_memory_map();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index ee74a71..9278ad3 100644 (file)
@@ -33,7 +33,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index c516e31..b413b88 100644 (file)
@@ -47,6 +47,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -71,14 +72,14 @@ class DISPLAY;
 class KEYBOARD;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        HD46505* crtc;
@@ -161,9 +162,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
index fdc4707..cef6310 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_rtc;
        
 public:
-       CALENDAR(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CALENDAR(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC I/F"));
        }
index 87344bd..4f0ec6b 100644 (file)
@@ -52,7 +52,7 @@ private:
        void stop();
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index f21f9be..79a73f9 100644 (file)
@@ -103,7 +103,7 @@ private:
        bool map_init, trans_init;
        
 public:
-       CRTC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CRTC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CRTC"));
        }
index 5e93ca9..0b682a1 100644 (file)
@@ -27,7 +27,7 @@ private:
 #endif
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index e6bd6e5..84ac62f 100644 (file)
@@ -40,7 +40,7 @@ private:
        void update_intr();
        
 public:
-       INTERRUPT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       INTERRUPT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                d_cpu = d_child = NULL;
                set_device_name(_T("Interrupt"));
index 8868753..0150737 100644 (file)
@@ -20,7 +20,7 @@ private:
        uint32_t mode;
        const uint32_t* joy_stat;
 public:
-       JOYSTICK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       JOYSTICK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Joystick I/F"));
        }
index d499002..4ba25ee 100644 (file)
@@ -30,7 +30,7 @@ private:
        void create_keystat();
        
 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"));
        }
index a93d483..d1e5fc9 100644 (file)
@@ -50,7 +50,7 @@ private:
        void set_map(uint8_t data);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 5f32452..5b828d7 100644 (file)
@@ -81,7 +81,7 @@ private:
 #endif
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index f2840f1..43f9c30 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool select;
        
 public:
-       MOUSE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MOUSE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Mouse I/F"));
        }
index 5b22714..58f1f6e 100644 (file)
@@ -20,7 +20,7 @@ private:
 //     uint8_t prev_data;
        
 public:
-       MZ1E26(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1E26(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1E26 (Voice Communication I/F)"));
        }
index faeca76..24eac64 100644 (file)
@@ -31,7 +31,7 @@ private:
        bool drq_status;
        
 public:
-       MZ1E30(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1E30(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1E30 (SASI I/F)"));
        }
index 2d8c310..9d4096f 100644 (file)
@@ -33,7 +33,7 @@ private:
        uint8_t port[2];
        
 public:
-       MZ1M01(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1M01(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1M01 (16bit CPU Board)"));
        }
index 1131206..98bd232 100644 (file)
@@ -24,7 +24,7 @@ private:
        uint32_t crc32;
        
 public:
-       MZ1R12(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1R12(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1R12 (32KB SRAM)"));
        }
index ec7e036..7f01b63 100644 (file)
@@ -26,7 +26,7 @@ private:
        bool select_kanji;
        
 public:
-       MZ1R13(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1R13(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1R13 (KANJI ROM)"));
        }
index 08b0554..31a0cc3 100644 (file)
@@ -21,7 +21,7 @@ private:
        uint32_t address;
        int tmp_buffer_size;
 public:
-       MZ1R37(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ1R37(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-1R37 (640KB EMM)"));
        }
index 47b066e..24cbc3c 100644 (file)
@@ -58,7 +58,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 99810a8..21a26c8 100644 (file)
@@ -64,6 +64,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -71,8 +72,8 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
-class EMU;
+//class csp_state_utils;
+//class EMU;
 class DEVICE;
 class EVENT;
 
@@ -108,14 +109,14 @@ class PRINTER;
 class SERIAL;
 class TIMER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8253* pit;
@@ -240,9 +241,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
index 1167035..90c520f 100644 (file)
@@ -54,7 +54,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 57775a3..219e2ca 100644 (file)
@@ -79,6 +79,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -120,14 +121,14 @@ class I8259;
 class MZ1M01;
 #endif
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8253* pit;
@@ -232,9 +233,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
index fc613b9..8825dd1 100644 (file)
@@ -22,7 +22,7 @@ private:
        DEVICE* d_prn;
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index a5aba39..adcb212 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool addr_a0;
        
 public:
-       SERIAL(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SERIAL(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Serial I/F"));
        }
index 5b71446..cf88d2b 100644 (file)
@@ -21,7 +21,7 @@ private:
        DEVICE* d_pit;
        
 public:
-       TIMER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       TIMER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Timer I/F"));
        }
index 745f4d4..e912498 100644 (file)
@@ -82,7 +82,7 @@ private:
        bool map_init, trans_init;
        
 public:
-       CRTC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CRTC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CRTC"));
        }
index 448220f..911e6f5 100644 (file)
@@ -22,7 +22,7 @@ private:
        MB8877* d_fdc;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 59f8b50..f9b949e 100644 (file)
@@ -20,7 +20,7 @@ private:
        uint32_t mode;
        const uint32_t* joy_stat;
 public:
-       JOYSTICK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       JOYSTICK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Joystick I/F"));
        }
index 93ca60a..84bdd42 100644 (file)
@@ -29,7 +29,7 @@ private:
        void create_keystat();
        
 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"));
        }
index 901b5d8..3537e29 100644 (file)
@@ -36,7 +36,7 @@ private:
        uint8_t vram_bank, dic_bank, kanji_bank;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 53f201f..6dd9eb0 100644 (file)
@@ -27,7 +27,7 @@ private:
        bool select;
        
 public:
-       MOUSE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MOUSE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Mouse I/F"));
        }
index 5c3c4c7..ed715a4 100644 (file)
@@ -50,7 +50,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 8667067..26cb874 100644 (file)
@@ -47,6 +47,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -85,14 +86,14 @@ class RESET;
 class SERIAL;
 class SYSPORT;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        I8253* pit;
        I8255* pio0;
@@ -173,9 +174,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
index 48bd31e..a8c9e84 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_prn;
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index 8458c38..71ed18e 100644 (file)
@@ -22,7 +22,7 @@ private:
        uint8_t prev;
        
 public:
-       RESET(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RESET(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Reset I/O"));
        }
index 2268997..9ed8173 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool addr_a0;
        
 public:
-       SERIAL(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SERIAL(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Serial I/F"));
        }
index fefc2ed..a815288 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE *d_pit, *d_sio;
        
 public:
-       SYSPORT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSPORT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 5dc1ea8..1db6177 100644 (file)
@@ -41,7 +41,7 @@ private:
        void set_dk(bool value);
        
 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"));
        }
index e11ee3c..b9abadb 100644 (file)
@@ -56,7 +56,7 @@ private:
        void update_bank();
        
 public:
-       MAIN(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MAIN(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                intfd = int0 = int1 = int2 = int3 = int4 = false;
                me = e1 = false;
index ec33858..793cf73 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index ff3084d..fb990b8 100644 (file)
@@ -52,6 +52,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -83,11 +84,11 @@ class KEYBOARD;
 class VM
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        // for main cpu
        IO* mainio;
@@ -181,9 +182,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
index 4e0ac4c..0f53606 100644 (file)
@@ -51,7 +51,7 @@ private:
        void draw_gfx_200line_8bit();
        
 public:
-       SUB(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SUB(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus (Sub)"));
        }
index e394ef9..3287fce 100644 (file)
@@ -43,7 +43,7 @@ private:
        void update_palette();
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 3d8c4dd..21883ea 100644 (file)
@@ -36,7 +36,7 @@ private:
        int phase, timeout;
        
 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"));
        }
index c736f6b..b16fa72 100644 (file)
@@ -50,7 +50,7 @@ private:
        void update_bank();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 3049cbf..1172067 100644 (file)
@@ -48,7 +48,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index f69ed08..6a764a2 100644 (file)
@@ -69,6 +69,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -108,11 +109,11 @@ class SYSPORT;
 class VM
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DEVICE* printer;
        I8237* dma;
@@ -210,9 +211,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
index 155d848..f363010 100644 (file)
@@ -21,7 +21,7 @@ private:
        int rst, highden;
        
 public:
-       SYSPORT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSPORT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 749d9a4..c2d6097 100644 (file)
@@ -24,7 +24,7 @@ private:
        bool modified;
        
 public:
-       CMOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMOS RAM"));
        }
index b546420..5d427d7 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint32_t data_addr;
        
 public:
-       EMM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       EMM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("EMM"));
        }
index 6ad9f83..ef2a57d 100644 (file)
@@ -29,7 +29,7 @@ private:
        bool irq_enabled;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 888dab9..f7b45d1 100644 (file)
@@ -25,7 +25,7 @@ private:
        uint32_t kanji_addr, dic_addr;
        
 public:
-       KANJI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       KANJI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Kanji ROM"));
        }
index efb9c46..7bf1b47 100644 (file)
@@ -28,7 +28,7 @@ private:
        void update_key();
        
 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"));
        }
index 6947433..c4a708d 100644 (file)
@@ -114,7 +114,7 @@ private:
 #endif
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 2d5a63f..4131d26 100644 (file)
@@ -54,7 +54,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
 #if defined(_MZ800)
        boot_mode = config.boot_mode;
index ab22a44..74501e3 100644 (file)
@@ -162,6 +162,7 @@ static const int vm_auto_key_table_base[][2] = {
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -214,11 +215,11 @@ class QUICKDISK;
 class VM
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        AND* and_int;
        DATAREC* drec;
@@ -335,9 +336,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
index e8290d4..d2a41ab 100644 (file)
@@ -21,7 +21,7 @@ private:
        DEVICE *d_psg_l, *d_psg_r;
        
 public:
-       PSG(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PSG(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("PSG"));
        }
index 122e73f..58d1b02 100644 (file)
@@ -54,7 +54,7 @@ private:
        void release_disk();
        
 public:
-       QUICKDISK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       QUICKDISK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Quick Disk"));
        }
index cfea912..e4f1a52 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint32_t data_addr;
        
 public:
-       RAMFILE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       RAMFILE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RAM File"));
        }
index 290b5b3..92ba4e7 100644 (file)
@@ -31,7 +31,7 @@ private:
        void update_key();
        
 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"));
        }
index 3b88381..1ff5a81 100644 (file)
@@ -81,7 +81,7 @@ private:
        uint8_t pcg_ctrl;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 04f2c12..c32fe13 100644 (file)
@@ -23,7 +23,7 @@ private:
        DEVICE* d_fdc;
        
 public:
-       MZ80AIF(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ80AIF(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-80AIF (FDC I/F)"));
        }
index ddf725c..eb87133 100644 (file)
@@ -21,7 +21,7 @@ private:
        DEVICE* d_fdc;
        
 public:
-       MZ80FIO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MZ80FIO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("MZ-80FIO (FDC I/F)"));
        }
index e1777b1..15f4db4 100644 (file)
@@ -54,7 +54,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 74fdb30..69fa6c7 100644 (file)
@@ -81,6 +81,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -121,14 +122,14 @@ class IO;
 class MZ80FIO;
 #endif
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
 #if defined(_MZ1200) || defined(_MZ80A)
        AND* and_int;
@@ -228,9 +229,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
index 29b3dbb..dbfc726 100644 (file)
@@ -25,7 +25,7 @@ private:
 #endif
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index 65523c6..df30d64 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool vsync_enb;
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 6468ce5..2836f2a 100644 (file)
@@ -24,7 +24,7 @@ private:
        uint8_t chgreg, ctrlreg;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index e9b4871..a659dc7 100644 (file)
@@ -26,7 +26,7 @@ private:
        uint8_t flag[256];
        
 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"));
        }
index 1dfec30..fbca66e 100644 (file)
@@ -32,7 +32,7 @@ private:
        bool protect;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index dc75e68..5589bf6 100644 (file)
@@ -39,7 +39,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index e0a9bf4..0ffb614 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -70,13 +71,13 @@ class KEYBOARD;
 class MEMORY;
 class SYSTEM;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
+       //EMU* emu;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        I386* cpu;
@@ -154,9 +155,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
index 82b251a..9cb7844 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool nmi_enb;
        
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 3b8d1cd..51a78ce 100644 (file)
@@ -41,7 +41,7 @@ private:
        void draw_screen15_wide(uint16_t src);
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index a819e8e..7aebf18 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool intr;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 4e2ad2b..1f4943e 100644 (file)
@@ -26,7 +26,7 @@ private:
        uint8_t sel;
        
 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"));
        }
index c0c0cf6..a736016 100644 (file)
@@ -35,7 +35,7 @@ private:
        uint8_t vram_data, mem_map;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 5544922..7eccb06 100644 (file)
 
 void PAC2::initialize()
 {
-       rampac2 = new RAMPAC2(vm, emu);
-       kanji = new KANJIPAC2(vm, emu);
-       joy = new JOYPAC2(vm, emu);
-       dummy = new PAC2DEV(vm, emu);
+       rampac2 = new RAMPAC2(static_cast<VM *>(vm), emu);
+       kanji = new KANJIPAC2(static_cast<VM *>(vm), emu);
+       joy = new JOYPAC2(static_cast<VM *>(vm), emu);
+       dummy = new PAC2DEV(static_cast<VM *>(vm), emu);
        rampac2->initialize(1);
        kanji->initialize(1);
        joy->initialize(1);
index d007748..543db29 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        boot_mode = config.boot_mode;
        
index 74137b0..94e1eb1 100644 (file)
@@ -75,6 +75,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -105,11 +106,11 @@ class KEYBOARD;
 class MEMORY;
 class PAC2;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
        EVENT* event;
@@ -205,9 +206,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
index b023f30..4a0f883 100644 (file)
@@ -43,7 +43,7 @@ private:
        void draw_fine_lcd(uint16_t src);
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 410dffd..2af3965 100644 (file)
@@ -23,7 +23,7 @@ private:
        bool intr;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 011306a..35192cf 100644 (file)
@@ -24,7 +24,7 @@ private:
        bool mio;
        
 public:
-       IOBUS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IOBUS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index a8c2814..0b0ed43 100644 (file)
@@ -24,7 +24,7 @@ private:
        bool nmi_mask, pasopia;
        
 public:
-       IOTRAP(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IOTRAP(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Trap"));
        }
index 8346da7..d9fc5c8 100644 (file)
@@ -26,7 +26,7 @@ private:
        uint8_t sel;
        
 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"));
        }
index c954ea6..02bdc02 100644 (file)
@@ -39,7 +39,7 @@ private:
        void update_memory_map();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 35c35e7..dbf3c87 100644 (file)
@@ -19,11 +19,11 @@ void PAC2::initialize()
        // slot 3 : ram pack #6
        // slot 2 : kanji rom
        // slot 1 : joystick
-       dummy = new PAC2DEV(vm, emu);
-       rampac2[0] = new RAMPAC2(vm, emu);
-       rampac2[1] = new RAMPAC2(vm, emu);
-       kanji = new KANJIPAC2(vm, emu);
-       joy = new JOYPAC2(vm, emu);
+       dummy = new PAC2DEV(static_cast<VM *>(vm), emu);
+       rampac2[0] = new RAMPAC2(static_cast<VM *>(vm), emu);
+       rampac2[1] = new RAMPAC2(static_cast<VM *>(vm), emu);
+       kanji = new KANJIPAC2(static_cast<VM *>(vm), emu);
+       joy = new JOYPAC2(static_cast<VM *>(vm), emu);
        
        rampac2[0]->initialize(1);
        rampac2[1]->initialize(2);
index 87095f9..d990a4a 100644 (file)
@@ -31,7 +31,7 @@ private:
        PAC2DEV* dummy;
        
 public:
-       PAC2(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PAC2(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("PAC2 Slot"));
        }
index 02704b3..e364194 100644 (file)
@@ -43,7 +43,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 0197573..0fdf68c 100644 (file)
@@ -63,6 +63,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -96,14 +97,14 @@ class KEYBOARD;
 class MEMORY;
 class PAC2;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        HD46505* crtc;
@@ -198,9 +199,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
index 2823cad..078ef33 100644 (file)
@@ -35,7 +35,7 @@ private:
        void update_palette(int num);
        
 public:
-       CRTC(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CRTC(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CRTC"));
        }
index 21cd105..a36c7a9 100644 (file)
@@ -36,7 +36,7 @@ private:
        void update_key();
        
 public:
-       IOCTRL(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IOCTRL(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Controller"));
        }
index deef9e4..968cab8 100644 (file)
@@ -22,7 +22,7 @@ private:
        bool strobe;
        
 public:
-       KANJI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       KANJI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Kanji ROM"));
        }
index 978371a..ed4352f 100644 (file)
@@ -38,7 +38,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index e98c890..08dcbcf 100644 (file)
@@ -51,6 +51,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -79,14 +80,14 @@ class CRTC;
 class IOCTRL;
 class KANJI;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        AND* and_drq;
        BEEP* beep;
@@ -167,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
index 2004251..c3de10a 100644 (file)
@@ -38,7 +38,7 @@ private:
        bool key_hit(int code);
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 9d2bf02..551e340 100644 (file)
@@ -31,7 +31,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index dd1a10f..6bacb67 100644 (file)
@@ -40,6 +40,7 @@
 #define USE_CPU_UPD7810
 
 #include "../../common.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -47,7 +48,7 @@ static const _TCHAR *sound_device_caption[] = {
 };
 #endif
 
-class csp_state_utils;
+//class csp_state_utils;
 class EMU;
 class DEVICE;
 class EVENT;
@@ -66,11 +67,11 @@ class IO;
 class VM
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        MEMORY* memory;
@@ -146,9 +147,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
index d4dd2c6..f8fd198 100644 (file)
@@ -35,7 +35,7 @@ private:
        void put_signal();
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index 48ff922..31d959d 100644 (file)
@@ -25,7 +25,7 @@ private:
        bool caps, kana;
        
 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"));
        }
index bd87002..0e08a27 100644 (file)
@@ -29,7 +29,7 @@ private:
        uint8_t screen[64][250];
        
 public:
-       LCD(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       LCD(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("LCD"));
        }
index 5d6ebe6..f35751c 100644 (file)
@@ -31,7 +31,7 @@ private:
        void update_bank();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 7405ec4..3bffe9e 100644 (file)
@@ -33,7 +33,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 00fe7fd..ca5b629 100644 (file)
@@ -42,6 +42,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -67,14 +68,14 @@ class KEYBOARD;
 class LCD;
 class MEMORY;
 
-class VM
+class VM :public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8080* cpu;
@@ -154,9 +155,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
index 1952eba..37b8538 100644 (file)
@@ -23,7 +23,7 @@ private:
        UPD765A *d_fdc;
        
 public:
-       BIOS(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       BIOS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Pseudo BIOS"));
        }
index 71a9ab6..680fdd9 100644 (file)
@@ -24,7 +24,7 @@ private:
 #endif
        
 public:
-       CALENDAR(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CALENDAR(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC I/F"));
        }
index db40934..e928413 100644 (file)
@@ -27,7 +27,7 @@ private:
        uint8_t ctrlreg, modereg;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index c1b35d0..3b38289 100644 (file)
@@ -26,7 +26,7 @@ private:
        uint8_t flag[256];
        
 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"));
        }
index d8362c6..e667562 100644 (file)
@@ -57,7 +57,7 @@ private:
 #endif
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 7147d0f..e6312f9 100644 (file)
@@ -22,7 +22,7 @@ private:
        uint8_t ch, regs[16];
        
 public:
-       NOTE(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       NOTE(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("98NOTE I/O"));
        }
index 9e050d1..33bae9b 100644 (file)
@@ -51,7 +51,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 6aa21e3..35351ce 100644 (file)
@@ -59,6 +59,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -99,14 +100,14 @@ class KEYBOARD;
 class MEMORY;
 class NOTE;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils *state_entry;
+       //EMU* emu;
+       //csp_state_utils *state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        DEVICE* printer;
@@ -196,9 +197,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
index f39bee1..d93b411 100644 (file)
@@ -35,7 +35,7 @@ private:
        uint8_t sysport;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index bee8523..9e2a490 100644 (file)
@@ -27,7 +27,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 73249fa..73232e0 100644 (file)
@@ -37,6 +37,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -56,14 +57,14 @@ class Z80;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        MC6847* vdp;
@@ -131,9 +132,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
index 910212a..01c47db 100644 (file)
@@ -22,7 +22,7 @@ private:
        const uint32_t *joy_stat;
        
 public:
-       JOYSTICK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       JOYSTICK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Joystick I/F"));
        }
index c4685e5..281f176 100644 (file)
@@ -27,7 +27,7 @@ private:
 #endif
        
 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"));
        }
index 4a81cb9..23ba8a7 100644 (file)
@@ -34,7 +34,7 @@ private:
        uint8_t* rbank[32];
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 62afbc5..3f02768 100644 (file)
@@ -35,7 +35,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 3e1539d..3e19cc4 100644 (file)
@@ -47,6 +47,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -73,14 +74,14 @@ class KEYBOARD;
 class MEMORY;
 class SYSTEM;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        IO* io;
@@ -155,9 +156,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
index 7b0e986..19196cd 100644 (file)
@@ -25,7 +25,7 @@ private:
        uint8_t sysport;
        
 public:
-       SYSTEM(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SYSTEM(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("System I/O"));
        }
index 3b7301e..de20c3b 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint8_t status;
        
 public:
-       JOYSTICK(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       JOYSTICK(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Joystick I/F"));
        }
index 96261d1..b4a58a0 100644 (file)
@@ -26,7 +26,7 @@ private:
        int volume_l, volume_r;
        
 public:
-       PSG(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PSG(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                volume_l = volume_r = 1024;
                set_device_name(_T("PSG"));
index c187610..bd73533 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 2a8ce5a..118f937 100644 (file)
@@ -36,6 +36,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -70,14 +71,14 @@ class JOYSTICK;
 class PSG;
 class VDP;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        IO* io;
        MEMORY* memory;
@@ -140,9 +141,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
index 7c847e6..642e7be 100644 (file)
@@ -34,7 +34,7 @@ private:
        void draw_pcg(int x8, int y8, uint16_t top);
        
 public:
-       VDP(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       VDP(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("VDP"));
        }
index bf33e67..ded5ab3 100644 (file)
@@ -28,7 +28,7 @@ private:
        uint8_t start, bit;
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index a10612c..0c6c08e 100644 (file)
@@ -25,7 +25,7 @@ private:
        bool intr_enb;
        
 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"));
        }
index 66bea6b..3a60de4 100644 (file)
@@ -21,7 +21,7 @@ private:
        bool busy;
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index b098976..d695cdd 100644 (file)
@@ -30,7 +30,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index f12b15e..939f285 100644 (file)
@@ -42,6 +42,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -66,14 +67,14 @@ class CMT;
 class KEYBOARD;
 class PRINTER;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        IO* io;
        MEMORY* memory;
@@ -149,9 +150,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
index acede30..f5945fc 100644 (file)
@@ -36,7 +36,7 @@ private:
        const uint32_t *joy;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 5cc6914..24de4ba 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 1351da8..f791a6b 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -58,14 +59,14 @@ class TMS9995;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        SN76489AN* psg;
@@ -137,9 +138,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
index 457a33d..3eb965b 100644 (file)
@@ -42,7 +42,7 @@ private:
        int blink;
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 3b3aef8..9944177 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE *d_fdc, *d_mem;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 538ff94..82fe073 100644 (file)
@@ -27,7 +27,7 @@ private:
        const uint8_t* key_stat;
        
 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"));
        }
index c142f21..f059c66 100644 (file)
@@ -43,7 +43,7 @@ private:
        bool fdc_irq, motor;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 68d9e8c..4fe6e4d 100644 (file)
@@ -27,7 +27,7 @@ private:
        FIFO *res;
        
 public:
-       MFONT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MFONT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Multi FONT ROM Card"));
        }
index f7f7232..3e3e72f 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 9624a11..89e7ae9 100644 (file)
@@ -57,6 +57,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -88,14 +89,14 @@ class KEYBOARD;
 class MEMORY;
 class MFONT;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        HD146818P* rtc;
        I8237* dma0;
@@ -174,9 +175,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
index 7ef5ec1..4bac4e1 100644 (file)
@@ -26,7 +26,7 @@ private:
        int framecnt;
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index af6a473..206a5a0 100644 (file)
@@ -22,7 +22,7 @@ private:
        uint8_t status[16];
        uint8_t column;
 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"));
        }
index 05f786b..9690969 100644 (file)
@@ -34,7 +34,7 @@ private:
        bool inserted;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index c3f4f73..1f3b5a5 100644 (file)
@@ -23,7 +23,7 @@ private:
        uint8_t out;
        
 public:
-       PRINTER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       PRINTER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Printer I/F"));
        }
index b8ccffc..a119b7f 100644 (file)
@@ -32,7 +32,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 48fced5..10be7bf 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -62,14 +63,14 @@ class MEMORY;
 class PRINTER;
 class VDP;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        IO* io;
@@ -145,9 +146,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
index 8850a8a..1f418ce 100644 (file)
@@ -30,7 +30,7 @@ private:
        void create_bg();
        
 public:
-       VDP(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       VDP(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("VDP"));
        }
index 44429f0..11289ba 100644 (file)
@@ -29,7 +29,7 @@ private:
        void update_keyboard();
        
 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"));
        }
index 869d8b6..fac2009 100644 (file)
@@ -36,7 +36,7 @@ private:
        void update_bank();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 7903590..fed1943 100644 (file)
@@ -34,7 +34,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index d225317..9f3ba66 100644 (file)
@@ -41,6 +41,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -66,14 +67,14 @@ class Z80;
 class KEYBOARD;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8251* sio;
@@ -157,9 +158,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
index f7eebdb..05509dd 100644 (file)
@@ -25,7 +25,7 @@ private:
        uint8_t pa, pb, pc;
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 5c82e85..7a845c7 100644 (file)
@@ -47,7 +47,7 @@ private:
        void set_bank(uint8_t bank);
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index c22f298..d1ead08 100644 (file)
@@ -27,7 +27,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 6553e7a..3ea9d54 100644 (file)
@@ -35,6 +35,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -55,14 +56,14 @@ class MEMORY;
 class SOUND;
 class VDP;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        UPD7801* cpu;
        
@@ -120,9 +121,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
index a51fd10..60e3b67 100644 (file)
@@ -68,7 +68,7 @@ private:
        void process_cmd();
        
 public:
-       SOUND(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SOUND(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Sound"));
        }
index 4ad7e76..6608873 100644 (file)
@@ -36,7 +36,7 @@ private:
        void draw_sprite(int dx, int dy, int sx, int ex, int sy, int ey, int no, uint8_t col);
        
 public:
-       VDP(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       VDP(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("VDP"));
        }
index 491275a..a57a178 100644 (file)
@@ -42,7 +42,7 @@ private:
        void update_kb();
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index aad2f0a..a1c1a6e 100644 (file)
@@ -29,7 +29,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index f171c8c..85dbe12 100644 (file)
@@ -38,6 +38,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -107,14 +108,14 @@ class Z80PIO;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        IO* io;
@@ -192,9 +193,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
index 51d4763..a7cecf9 100644 (file)
@@ -116,7 +116,7 @@ private:
 #endif
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index c8eac57..4d4f495 100644 (file)
@@ -37,7 +37,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 6a9ef98..691d4e6 100644 (file)
@@ -135,6 +135,7 @@ static const int vm_auto_key_table_base[][2] = {
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -165,14 +166,14 @@ class Z80;
 
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        HD46505* crtc;
@@ -262,9 +263,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
index d7dddba..7e26cfc 100644 (file)
@@ -47,7 +47,7 @@ private:
 #endif
        
 public:
-       CMT(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("CMT I/F"));
        }
index b4899db..1e5040c 100644 (file)
@@ -146,7 +146,7 @@ void DISPLAY::draw_screen()
                for(int x = 0; x < 256; x += 8) {
                        int code = vram[ptr++];
                        if(code != 0x20) {
-                               vm->draw_ranges = 9;
+                               static_cast<VM *>(vm)->draw_ranges = 9;
                        }
                        code |= code_ofs;
                        uint8_t* font_base = &font[code << 3];
index d7dd365..d9822ae 100644 (file)
@@ -31,7 +31,7 @@ private:
        bool dma;
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 88cee9c..bb33046 100644 (file)
@@ -37,7 +37,7 @@ private:
        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"));
        }
index a3f62b1..98465c1 100644 (file)
@@ -32,7 +32,7 @@ private:
 #endif
        
 public:
-       MEMBUS(VM* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
+       MEMBUS(VM_TEMPLATE* parent_vm, EMU* parent_emu) : MEMORY(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 29bcfd1..69d0563 100644 (file)
@@ -34,7 +34,7 @@ private:
        int boot_mode;
        
 public:
-       MEMORY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MEMORY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Bus"));
        }
index 4b1d121..4197383 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
 #if defined(_TK80BS)
        // check configs
index 5824163..c4b5a6d 100644 (file)
@@ -84,6 +84,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -204,14 +205,14 @@ class DISPLAY;
 class KEYBOARD;
 class MEMBUS;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8080* cpu;
@@ -315,9 +316,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;
index 32762ac..a8527cd 100644 (file)
@@ -88,7 +88,7 @@ private:
        int register_id_beep;
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 293a615..9d8877e 100644 (file)
@@ -26,7 +26,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 17d3211..69fe55e 100644 (file)
@@ -45,6 +45,7 @@
 #define USE_CPU_Z80
 
 #include "../../common.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -66,14 +67,14 @@ class IO;
 
 #include "../../fileio.h"
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        BEEP* beep;
        MEMORY* memory;
@@ -145,9 +146,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
index 8587d47..72c6176 100644 (file)
@@ -40,7 +40,7 @@ private:
        void update_key();
        
 public:
-       IO(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       IO(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("I/O Bus"));
        }
index 334f8a3..f25d5a6 100644 (file)
@@ -28,7 +28,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        config.sound_play_tape = false;
        config.wave_shaper[0] = false;
index d62c3ca..cbbff49 100644 (file)
@@ -43,6 +43,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -63,14 +64,14 @@ class MEMORY;
 
 class IO;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        DATAREC* drec;
        I8080* cpu;
@@ -144,9 +145,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
index 5a032dd..b33436f 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_rtc;
        
 public:
-       CALENDAR(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       CALENDAR(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("RTC I/F"));
        }
index f89f02c..a93b29f 100644 (file)
@@ -78,7 +78,7 @@ private:
        void draw_char(int x, int y, int pow, int rot, int code);
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Display"));
        }
index 8145dca..7efe8d0 100644 (file)
@@ -20,7 +20,7 @@ private:
        DEVICE* d_fdc;
        
 public:
-       FLOPPY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       FLOPPY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Floppy I/F"));
        }
index 0162a95..9e43930 100644 (file)
@@ -26,7 +26,7 @@ private:
        bool kana_locked;
        
 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"));
        }
index 0d97381..0397571 100644 (file)
@@ -29,7 +29,7 @@ private:
        void update_bank(int num);
        
 public:
-       MAPPER(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       MAPPER(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Memory Mapper"));
        }
index a621b0f..8d20ad3 100644 (file)
@@ -22,7 +22,7 @@ private:
        BEEP* d_beep;
        
 public:
-       SOUND(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       SOUND(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("Sound I/F"));
        }
index 9203671..ef79f1a 100644 (file)
@@ -40,7 +40,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index eecad93..5d7ffd4 100644 (file)
@@ -63,6 +63,7 @@ static const int vm_auto_key_table_base[][2] = {
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -94,14 +95,14 @@ class KEYBOARD;
 class MAPPER;
 class SOUND;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        M6502* cpu;
        IO* io;
@@ -182,9 +183,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
index 467d1e7..15d482a 100644 (file)
@@ -24,7 +24,7 @@ private:
        uint8_t pb, pc;
        
 public:
-       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+       DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
        {
                set_device_name(_T("7-Segment LEDs"));
        }
index c24e0cb..0359fa6 100644 (file)
@@ -23,7 +23,7 @@ private:
        const uint8_t* key_stat;
        
 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"));
        }
index 0c1189c..a05a15d 100644 (file)
@@ -29,7 +29,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index fda9fcf..0b2af8f 100644 (file)
@@ -33,6 +33,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 const struct {
        int x, y;
@@ -88,14 +89,14 @@ class Z80;
 class DISPLAY;
 class KEYBOARD;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
        IO* io;
        I8255* pio;
@@ -155,9 +156,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
index be06a33..f07bb8c 100644 (file)
@@ -33,7 +33,7 @@
 // initialize
 // ----------------------------------------------------------------------------
 
-VM::VM(EMU* parent_emu) : emu(parent_emu)
+VM::VM(EMU* parent_emu) : VM_TEMPLATE(parent_emu)
 {
        // create devices
        first_device = last_device = NULL;
index 864bee5..c9236fb 100644 (file)
@@ -39,6 +39,7 @@
 
 #include "../../common.h"
 #include "../../fileio.h"
+#include "../vm_template.h"
 
 #ifdef USE_SOUND_VOLUME
 static const _TCHAR *sound_device_caption[] = {
@@ -63,14 +64,14 @@ class Z80;
 class JOYSTICK;
 class MEMORY;
 
-class VM
+class VM : public VM_TEMPLATE
 {
 protected:
-       EMU* emu;
-       csp_state_utils* state_entry;
+       //EMU* emu;
+       //csp_state_utils* state_entry;
        
        // devices
-       EVENT* event;
+       //EVENT* event;
        
 #ifdef _USE_I8255
        I8255* pio;
@@ -132,9 +133,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