From: K.Ohta Date: Tue, 29 Sep 2015 09:47:12 +0000 (+0900) Subject: [VM][Qt] Add Mitsubishi Multi8. X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=514e2a3db70e99676110bb368d0800221e3a1f3f;p=csp-qt%2Fcommon_source_project-fm7.git [VM][Qt] Add Mitsubishi Multi8. --- diff --git a/source/build-cmake/multi8/CMakeLists.txt b/source/build-cmake/multi8/CMakeLists.txt new file mode 100644 index 000000000..b1a0eb745 --- /dev/null +++ b/source/build-cmake/multi8/CMakeLists.txt @@ -0,0 +1,76 @@ +# Build Common Sourcecode Project, Qt. +# (C) 2014 K.Ohta +# This is part of XM7/SDL, but license is apache 2.2, +# this part was written only me. + +cmake_minimum_required (VERSION 2.8) +cmake_policy(SET CMP0011 NEW) + +message("") +message("** Start of configure CommonSourceProject,Mitsubishi Multi 8, Qt **") +message("") + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake") + + +project (emumulti8) + +set(EXEC_TARGET emumulti8) + +set(LOCAL_LIBS vm_multi8 + vm_vm + vm_fmgen + common_common + qt_multi8 + qt_debugger + qt_gui + ) + +set(VMFILES_BASE + z80.cpp + + hd46505.cpp + i8251.cpp + i8253.cpp + i8255.cpp + i8259.cpp + upd765a.cpp + ym2203.cpp + + io.cpp + datarec.cpp + disk.cpp + + event.cpp +) + + +set(USE_OPENMP ON CACHE BOOL "Build using OpenMP") +set(USE_OPENGL ON CACHE BOOL "Build using OpenGL") +#set(WITH_DEBUGGER ON CACHE BOOL "Build with debugger.") + +include(detect_target_cpu) +#include(windows-mingw-cross) +# set entry +set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE STRING "Set processor to build.") + +set(VMFILES ${VMFILES_BASE}) +add_definitions(-D_MULTI8) +set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/multi8.qrc) + +#include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/multi8) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/multi8) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/debugger) + +include(config_commonsource) + +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/fmgen) + +add_subdirectory(../../src/vm/multi8 vm/multi8) +add_subdirectory(../../src/vm/fmgen vm/fmgen) +add_subdirectory(../../src/qt/multi8 qt/multi8) +add_subdirectory(../../src/qt/debugger qt/debugger) + +add_subdirectory(../../src/qt/common qt/common) diff --git a/source/src/qt/common/qrc/multi8.qrc b/source/src/qt/common/qrc/multi8.qrc new file mode 100644 index 000000000..c51c2f649 --- /dev/null +++ b/source/src/qt/common/qrc/multi8.qrc @@ -0,0 +1,5 @@ + + + ../../../res/multi8.ico + + \ No newline at end of file diff --git a/source/src/qt/multi8/CMakeLists.txt b/source/src/qt/multi8/CMakeLists.txt new file mode 100644 index 000000000..68217120a --- /dev/null +++ b/source/src/qt/multi8/CMakeLists.txt @@ -0,0 +1,18 @@ +message("* qt/multi8") + +set(s_qt_multi8_headers + menuclasses.h +) + +if(USE_QT_5) + QT5_WRAP_CPP(s_qt_multi8_headers_MOC ${s_qt_multi8_headers}) +else() + QT4_WRAP_CPP(s_qt_multi8_headers_MOC ${s_qt_multi8_headers}) +endif() + +add_library(qt_multi8 + MainWindow.cpp + ${s_qt_multi8_headers_MOC} +) + + diff --git a/source/src/qt/multi8/MainWindow.cpp b/source/src/qt/multi8/MainWindow.cpp new file mode 100644 index 000000000..15f4e1690 --- /dev/null +++ b/source/src/qt/multi8/MainWindow.cpp @@ -0,0 +1,63 @@ +/* + * Common Source code Project: + * Ui->Qt->MainWindow for JR100 . + * (C) 2015 K.Ohta + * License : GPLv2 + * History : + * Jan 14, 2015 : Initial, many of constructors were moved to qt/gui/menu_main.cpp. + */ + +#include +#include +#include "emu.h" +#include "commonclasses.h" +#include "menuclasses.h" +#include "qt_main.h" + + +void META_MainWindow::setupUI_Emu(void) +{ + +} + +void META_MainWindow::retranslateUi(void) +{ + int i; + retranslateControlMenu("System Reset", false); + + retranslateFloppyMenu(0, 1); + retranslateFloppyMenu(1, 2); + + retranslateCMTMenu(); + retranslateSoundMenu(); + retranslateScreenMenu(); + + this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0)); + + actionAbout->setText(QApplication::translate("MainWindow", "About...", 0)); + + menuEmulator->setTitle(QApplication::translate("MainWindow", "Emulator", 0)); + menuMachine->setTitle(QApplication::translate("MainWindow", "Machine", 0)); + + menuHELP->setTitle(QApplication::translate("MainWindow", "HELP", 0)); + actionHelp_AboutQt->setText(QApplication::translate("MainWindow", "About Qt", 0)); + // Set Labels +} // retranslateUi + + + +META_MainWindow::META_MainWindow(QWidget *parent) : Ui_MainWindow(parent) +{ + setupUI_Emu(); + retranslateUi(); +} + + +META_MainWindow::~META_MainWindow() +{ +} + +//QT_END_NAMESPACE + + + diff --git a/source/src/qt/multi8/menuclasses.h b/source/src/qt/multi8/menuclasses.h new file mode 100644 index 000000000..abe8b56bd --- /dev/null +++ b/source/src/qt/multi8/menuclasses.h @@ -0,0 +1,30 @@ + + + +#ifndef _CSP_QT_MENUCLASSES_H +#define _CSP_QT_MENUCLASSES_H + +#include "emu.h" +#include "mainwidget.h" +// This extends class CSP_MainWindow as Ui_MainWindow. +// You may use this as +QT_BEGIN_NAMESPACE + +class Ui_MainWindow; + +class META_MainWindow : public Ui_MainWindow { + Q_OBJECT + protected: + void setupUI_Emu(void); + void retranslateUi(void); + + public: + META_MainWindow(QWidget *parent = 0); + ~META_MainWindow(); +public slots: + +}; + +QT_END_NAMESPACE + +#endif // END diff --git a/source/src/vm/multi8/CMakeLists.txt b/source/src/vm/multi8/CMakeLists.txt new file mode 100644 index 000000000..eb7a1d9d9 --- /dev/null +++ b/source/src/vm/multi8/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required (VERSION 2.6) + +message("* vm/multi8") + +add_library(vm_multi8 + multi8.cpp + cmt.cpp + display.cpp + floppy.cpp + kanji.cpp + keyboard.cpp + memory.cpp + ) \ No newline at end of file diff --git a/source/src/vm/multi8/cmt.h b/source/src/vm/multi8/cmt.h index 38e085382..bdcdf6ab0 100644 --- a/source/src/vm/multi8/cmt.h +++ b/source/src/vm/multi8/cmt.h @@ -20,6 +20,14 @@ // max 256kbytes #define BUFFER_SIZE 0x40000 +#if !defined(MSC_VER) +static inline int min(int a, int b) +{ + if(a < b) return a; + return b; +} +#endif + class CMT : public DEVICE { private: