OSDN Git Service

[VM][M23][WIP] Add M23.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Sat, 14 Jan 2023 14:04:56 +0000 (23:04 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Sat, 14 Jan 2023 14:04:56 +0000 (23:04 +0900)
20 files changed:
doc/VMs/m23.txt [new file with mode: 0644]
source/cmake/config_misccom.cmake
source/src/qt/common/qrc/m23.qrc [new file with mode: 0644]
source/src/qt/common/qrc/m68.qrc [new file with mode: 0644]
source/src/res/m23.rc
source/src/vm/m23/CMakeLists.txt [new file with mode: 0644]
source/src/vm/m23/apu.cpp
source/src/vm/m23/apu.h
source/src/vm/m23/beep.cpp
source/src/vm/m23/beep.h
source/src/vm/m23/display.cpp
source/src/vm/m23/display.h
source/src/vm/m23/floppy.cpp
source/src/vm/m23/floppy.h
source/src/vm/m23/iobus.cpp
source/src/vm/m23/iobus.h
source/src/vm/m23/keyboard.cpp
source/src/vm/m23/keyboard.h
source/src/vm/m23/m23.cpp
source/src/vm/m23/m23.h

diff --git a/doc/VMs/m23.txt b/doc/VMs/m23.txt
new file mode 100644 (file)
index 0000000..75d3de0
--- /dev/null
@@ -0,0 +1,24 @@
+"Emu23" - SORD M23 emulator for Win32
+                                                               5/25/2022
+
+--- Internal ROM image
+
+       BOOT.ROM        2KB
+       FONT.ROM        4KB (JIS + ASCII)
+
+--- Key maps
+
+       PC              Virtual
+       --------------------------------
+       F8              S1
+       F9              S2
+       F12             LF
+       Home            NUM 000
+       End             NUM =
+       Page Up         NMU C
+       Page Down       NUM E
+
+----------------------------------------
+TAKEDA, toshiya
+t-takeda@m1.interq.or.jp
+http://takeda-toshiya.my.coocan.jp/
index fbd4c77..0ae0958 100644 (file)
@@ -13,15 +13,23 @@ set(BUILD_JR800 ON CACHE BOOL "Build Matsushita JR-800.")
 set(BUILD_JX ON CACHE BOOL "Build IBM JX.")
 
 set(BUILD_M5 ON CACHE BOOL "Build SORD M5.")
+set(BUILD_M23 ON CACHE BOOL "Build SORD M23.")
+set(BUILD_M68 OFF CACHE BOOL "Build SORD M68.")
+
 set(BUILD_MAP1010 ON CACHE BOOL "Build SEIKO MAP-1010.")
+
 set(BUILD_MICOM_MAHJONG ON CACHE BOOL "Build MICOM MAHJONG.")
-set(BUILD_MULTI8 ON CACHE BOOL "Build Mitsubishi Multi 8.")
 set(BUILD_MYCOMZ80A ON CACHE BOOL "Build Japan Electronics College MYCOM Z-80A.")
 
+set(BUILD_MULTI8 ON CACHE BOOL "Build Mitsubishi Multi 8.")
+
 set(BUILD_PHC20 ON CACHE BOOL "Build Sanyo PHC-20.")
 set(BUILD_PHC25 ON CACHE BOOL "Build Sanyo PHC-25.")
+
 set(BUILD_PYUTA ON CACHE BOOL "Build TOMY PYUTA.")
+
 set(BUILD_RX78 ON CACHE BOOL "Build BANDAI RX-78.")
+
 set(BUILD_SCV ON CACHE BOOL "Build EPOCH Cuper Casette Vision.")
 
 set(BUILD_SMC70 ON CACHE BOOL "Build SONY SMC-70")
@@ -32,6 +40,7 @@ set(BUILD_TVBOY ON CACHE BOOL "Build GAKKEN TV BOY")
 set(BUILD_X07 ON CACHE BOOL "Build CANON X07")
 set(BUILD_YALKY ON CACHE BOOL "Build Yuasa Kyouiku System YALKY")
 set(BUILD_YIS ON CACHE BOOL "Build YAMAHA YIS")
+
 set(BUILD_Z80TVGAME_I8255 ON CACHE BOOL "Build Homebrew Z80 TV GAME SYSTEM (i8255)")
 set(BUILD_Z80TVGAME_Z80PIO ON CACHE BOOL "Build Homebrew Z80 TV GAME SYSTEM (Z80PIO)")
 
@@ -79,9 +88,20 @@ if(BUILD_JX)
 endif()
 
 if(BUILD_M5)
-       set(RESOURCE ${PROJECT_SOURCE_DIR}/src/qt/common/qrc/jr800.qrc)
+       set(RESOURCE ${PROJECT_SOURCE_DIR}/src/qt/common/qrc/m5.qrc)
        ADD_VM(m5 emum5 _M5)
 endif()
+
+if(BUILD_M23)
+       set(RESOURCE ${PROJECT_SOURCE_DIR}/src/qt/common/qrc/m23.qrc)
+       ADD_VM(m23 emum23 _M23)
+endif()
+
+if(BUILD_M68)
+       set(RESOURCE ${PROJECT_SOURCE_DIR}/src/qt/common/qrc/m68.qrc)
+       ADD_VM(m68 emum68 _M68)
+endif()
+
 if(BUILD_MAP1010)
        set(RESOURCE ${PROJECT_SOURCE_DIR}/src/qt/common/qrc/map1010.qrc)
        ADD_VM(phc25 emumap1010 _MAP1010)
diff --git a/source/src/qt/common/qrc/m23.qrc b/source/src/qt/common/qrc/m23.qrc
new file mode 100644 (file)
index 0000000..20e53d6
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file alias="default.ico">../../../res/m68.ico</file>
+    <file alias="bios_and_keys.txt">../../../../../doc/VMs/m23.txt</file>
+</qresource>
+</RCC>
diff --git a/source/src/qt/common/qrc/m68.qrc b/source/src/qt/common/qrc/m68.qrc
new file mode 100644 (file)
index 0000000..20e53d6
--- /dev/null
@@ -0,0 +1,6 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file alias="default.ico">../../../res/m68.ico</file>
+    <file alias="bios_and_keys.txt">../../../../../doc/VMs/m23.txt</file>
+</qresource>
+</RCC>
index 77bfe37..e044e6f 100644 (file)
@@ -332,3 +332,4 @@ END
 \r
 /////////////////////////////////////////////////////////////////////////////\r
 #endif    // not APSTUDIO_INVOKED\r
+\r
diff --git a/source/src/vm/m23/CMakeLists.txt b/source/src/vm/m23/CMakeLists.txt
new file mode 100644 (file)
index 0000000..e66fafd
--- /dev/null
@@ -0,0 +1,28 @@
+cmake_minimum_required (VERSION 3.0)
+
+message("* vm/${EXE_NAME}")
+
+set(VMFILES_M23
+       apu.cpp
+       beep.cpp
+       display.cpp
+       floppy.cpp
+       iobus.cpp
+       keyboard.cpp
+       membus.cpp
+       m23.cpp
+)
+
+set(VMFILES_M68 ${VMFILES_M23})
+
+if(${EXE_NAME} STREQUAL emum23)
+       add_library(vm_emum23
+               ${VMFILES_M23}
+       )
+endif()
+
+if(${EXE_NAME} STREQUAL emum68)
+       add_library(vm_emum68
+               ${VMFILES_M68}
+       )
+endif()
index df57966..0c8f9e1 100644 (file)
@@ -7,8 +7,9 @@
        [ apu ]
 */
 
-#include "apu.h"
+#include "./apu.h"
 
+namespace M23 {
 void APU::write_io8(uint32_t addr, uint32_t data)
 {
        switch(addr & 0xff) {
@@ -31,3 +32,4 @@ uint32_t APU::read_io8(uint32_t addr)
        }
        return 0xff;
 }
+}
index 41cb373..812eb82 100644 (file)
@@ -14,6 +14,7 @@
 #include "../../emu.h"
 #include "../device.h"
 
+namespace M23 {
 class APU : public DEVICE
 {
 private:
@@ -36,5 +37,5 @@ public:
                d_apu = device;
        }
 };
-
+}
 #endif
index 593b425..d6ae76b 100644 (file)
@@ -7,8 +7,9 @@
        [ beep ]
 */
 
-#include "beep.h"
+#include "./beep.h"
 
+namespace M23 {
 void BEEP::initialize()
 {
        PCM1BIT::initialize();
@@ -52,4 +53,4 @@ bool BEEP::process_state(FILEIO* state_fio, bool loading)
        state_fio->StateValue(reg);
        return true;
 }
-
+}
index 3b01b7e..0b0ce30 100644 (file)
@@ -12,6 +12,7 @@
 
 #include "../pcm1bit.h"
 
+namespace M23 {
 class BEEP: public PCM1BIT
 {
 private:
@@ -30,5 +31,6 @@ public:
        uint32_t read_io8(uint32_t addr);
        bool process_state(FILEIO* state_fio, bool loading);
 };
+}
 
 #endif
index bbe58fd..c80705f 100644 (file)
@@ -7,8 +7,9 @@
        [ display ]
 */
 
-#include "display.h"
+#include "./display.h"
 
+namespace M23 {
 void DISPLAY::initialize()
 {
        // load rom image
@@ -185,4 +186,4 @@ bool DISPLAY::process_state(FILEIO* state_fio, bool loading)
        state_fio->StateValue(vd_control);
        return true;
 }
-
+}
index 8275313..c30b6d7 100644 (file)
@@ -14,6 +14,7 @@
 #include "../../emu.h"
 #include "../device.h"
 
+namespace M23 {
 class DISPLAY : public DEVICE
 {
 private:
@@ -56,6 +57,7 @@ public:
        }
        void draw_screen();
 };
+}
 
 #endif
 
index 051b439..ee32a11 100644 (file)
@@ -7,9 +7,10 @@
        [ fdc control ]
 */
 
-#include "floppy.h"
+#include "./floppy.h"
 #include "../mb8877.h"
 
+namespace M23 {
 void FLOPPY::write_io8(uint32_t addr, uint32_t data)
 {
        switch(addr & 0xff) {
@@ -35,3 +36,4 @@ void FLOPPY::write_io8(uint32_t addr, uint32_t data)
                break;
        }
 }
+}
index ac53b33..fa51490 100644 (file)
@@ -16,6 +16,7 @@
 
 class MB8877;
 
+namespace M23 {
 class FLOPPY : public DEVICE
 {
 private:
@@ -37,5 +38,5 @@ public:
                d_fdc = device;
        }
 };
-
+}
 #endif
index 5bbb473..e883df3 100644 (file)
@@ -7,9 +7,10 @@
        [ i/o bus ]
 */
 
-#include "iobus.h"
+#include "./iobus.h"
 #include "../mb8877.h"
 
+namespace M23 {
 void IOBUS::initialize()
 {
        IO::initialize();
@@ -90,4 +91,4 @@ bool IOBUS::process_state(FILEIO* state_fio, bool loading)
        }
        return true;
 }
-
+}
index e692a7e..06b4db6 100644 (file)
@@ -14,6 +14,7 @@
 
 class MB8877;
 
+namespace M23 {
 class IOBUS : public IO
 {
 private:
@@ -47,5 +48,5 @@ public:
                d_fdc = device;
        }
 };
-
+}
 #endif
index 06a7297..e52d18f 100644 (file)
@@ -7,8 +7,9 @@
        [ keyboard ]
 */
 
-#include "keyboard.h"
+#include "./keyboard.h"
 
+namespace M23 {
 /*
        S1      -> F8
        S2      -> F9
@@ -136,3 +137,4 @@ bool KEYBOARD::process_state(FILEIO* state_fio, bool loading)
        return true;
 }
 
+}
index e6d7103..c622df4 100644 (file)
@@ -14,6 +14,7 @@
 #include "../../emu.h"
 #include "../device.h"
 
+namespace M23 {
 class KEYBOARD : public DEVICE
 {
 private:
@@ -50,5 +51,6 @@ public:
        }
        void key_down(int code);
 };
+}
 
 #endif
index 0f87e43..19c33bb 100644 (file)
 #include "../debugger.h"
 #endif
 
-#include "apu.h"
-#include "beep.h"
-#include "display.h"
-#include "floppy.h"
-#include "keyboard.h"
-#include "membus.h"
+#include "./apu.h"
+#include "./beep.h"
+#include "./display.h"
+#include "./floppy.h"
+#include "./keyboard.h"
+#include "./membus.h"
+
+using M23::APU;
+using M23::BEEP;
+using M23::DISPLAY;
+using M23::FLOPPY;
+using M23::KEYBOARD;
+using M23::MEMBUS;
 
 // ----------------------------------------------------------------------------
 // initialize
index 8c98fd4..a5f3d98 100644 (file)
@@ -89,12 +89,14 @@ class Z80DMA;
 class Z80PIO;
 class Z80SIO;
 
-class APU;
-class BEEP;
-class DISPLAY;
-class FLOPPY;
-class KEYBOARD;
-class MEMBUS;
+namespace M23 {
+       class APU;
+       class BEEP;
+       class DISPLAY;
+       class FLOPPY;
+       class KEYBOARD;
+       class MEMBUS;
+}
 
 class VM : public VM_TEMPLATE
 {
@@ -118,12 +120,12 @@ protected:
        Z80PIO* pio;
        Z80SIO* sio;
        
-       APU* apu;
-       BEEP* beep;
-       DISPLAY* display;
-       FLOPPY* floppy;
-       KEYBOARD* keyboard;
-       MEMBUS* memory;
+       M23::APU* apu;
+       M23::BEEP* beep;
+       M23::DISPLAY* display;
+       M23::FLOPPY* floppy;
+       M23::KEYBOARD* keyboard;
+       M23::MEMBUS* memory;
        
 public:
        // ----------------------------------------