From d1fd364a063cf193a38b50fc86df1cce966381a1 Mon Sep 17 00:00:00 2001 From: "K.Ohta" Date: Thu, 1 Oct 2015 00:24:52 +0900 Subject: [PATCH] [VM][Qt] Add Sony SMC-70/777 . --- source/build-cmake/smc70/CMakeLists.txt | 65 ++++++++++++++++++++++++++++++++ source/build-cmake/smc777/CMakeLists.txt | 65 ++++++++++++++++++++++++++++++++ source/src/qt/common/qrc/smc70.qrc | 5 +++ source/src/qt/common/qrc/smc777.qrc | 5 +++ source/src/qt/gui/menu_disk.cpp | 2 +- source/src/qt/smc777/CMakeLists.txt | 17 +++++++++ source/src/qt/smc777/MainWindow.cpp | 64 +++++++++++++++++++++++++++++++ source/src/qt/smc777/menuclasses.h | 31 +++++++++++++++ source/src/vm/smc777/CMakeLists.txt | 8 ++++ source/src/vm/smc777/smc777.cpp | 5 +++ source/src/vm/smc777/smc777.h | 1 + 11 files changed, 267 insertions(+), 1 deletion(-) create mode 100644 source/build-cmake/smc70/CMakeLists.txt create mode 100644 source/build-cmake/smc777/CMakeLists.txt create mode 100644 source/src/qt/common/qrc/smc70.qrc create mode 100644 source/src/qt/common/qrc/smc777.qrc create mode 100644 source/src/qt/smc777/CMakeLists.txt create mode 100644 source/src/qt/smc777/MainWindow.cpp create mode 100644 source/src/qt/smc777/menuclasses.h create mode 100644 source/src/vm/smc777/CMakeLists.txt diff --git a/source/build-cmake/smc70/CMakeLists.txt b/source/build-cmake/smc70/CMakeLists.txt new file mode 100644 index 000000000..e64cbafc4 --- /dev/null +++ b/source/build-cmake/smc70/CMakeLists.txt @@ -0,0 +1,65 @@ +# 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,SONY SMC-70, Qt **") +message("") + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake") + + +project (emusmc70) + +set(EXEC_TARGET emusmc70) + +set(LOCAL_LIBS vm_smc777 + vm_vm + common_common + qt_smc777 + qt_debugger + qt_gui + ) + +set(VMFILES_BASE + z80.cpp + + pcm1bit.cpp + hd46505.cpp + mb8877.cpp + sn76489an.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") + +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_SMC777) +set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/smc70.qrc) + +#include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/smc777) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/smc777) + +include(config_commonsource) + +add_subdirectory(../../src/vm/smc777 vm/smc777) +add_subdirectory(../../src/qt/smc777 qt/smc777) + +add_subdirectory(../../src/qt/common qt/common) +add_subdirectory(../../src/qt/debugger qt/debugger) diff --git a/source/build-cmake/smc777/CMakeLists.txt b/source/build-cmake/smc777/CMakeLists.txt new file mode 100644 index 000000000..efac0b4a5 --- /dev/null +++ b/source/build-cmake/smc777/CMakeLists.txt @@ -0,0 +1,65 @@ +# 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,SONY SMC-777, Qt **") +message("") + +set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake") + + +project (emusmc777) + +set(EXEC_TARGET emusmc777) + +set(LOCAL_LIBS vm_smc777 + vm_vm + common_common + qt_smc777 + qt_debugger + qt_gui + ) + +set(VMFILES_BASE + z80.cpp + + pcm1bit.cpp + hd46505.cpp + mb8877.cpp + sn76489an.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") + +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_SMC777) +set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/smc777.qrc) + +#include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/smc777) +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/smc777) + +include(config_commonsource) + +add_subdirectory(../../src/vm/smc777 vm/smc777) +add_subdirectory(../../src/qt/smc777 qt/smc777) + +add_subdirectory(../../src/qt/common qt/common) +add_subdirectory(../../src/qt/debugger qt/debugger) diff --git a/source/src/qt/common/qrc/smc70.qrc b/source/src/qt/common/qrc/smc70.qrc new file mode 100644 index 000000000..7a9429a96 --- /dev/null +++ b/source/src/qt/common/qrc/smc70.qrc @@ -0,0 +1,5 @@ + + + ../../../res/smc70.ico + + \ No newline at end of file diff --git a/source/src/qt/common/qrc/smc777.qrc b/source/src/qt/common/qrc/smc777.qrc new file mode 100644 index 000000000..e1c1afa23 --- /dev/null +++ b/source/src/qt/common/qrc/smc777.qrc @@ -0,0 +1,5 @@ + + + ../../../res/smc777.ico + + \ No newline at end of file diff --git a/source/src/qt/gui/menu_disk.cpp b/source/src/qt/gui/menu_disk.cpp index 66442db3a..cc5cfaa9b 100644 --- a/source/src/qt/gui/menu_disk.cpp +++ b/source/src/qt/gui/menu_disk.cpp @@ -73,7 +73,7 @@ void Object_Menu_Control::do_set_correct_disk_timing(bool flag) #ifdef USE_FD1 void Ui_MainWindow::open_disk_dialog(int drv) { - QString ext = "*.d88 *.d77 *.td0 *.imd *.dsk *.fdi *.hdm *.tfd *.xdf *.2d *.sf7"; + QString ext = "*.d88 *.d77 *.1dd *.td0 *.imd *.dsk *.fdi *.hdm *.tfd *.xdf *.2d *.sf7 *.img *.ima *.vfd"; QString desc1 = "Floppy Disk"; QString desc2; CSP_DiskDialog dlg; diff --git a/source/src/qt/smc777/CMakeLists.txt b/source/src/qt/smc777/CMakeLists.txt new file mode 100644 index 000000000..fd429b812 --- /dev/null +++ b/source/src/qt/smc777/CMakeLists.txt @@ -0,0 +1,17 @@ +message("* qt/smc777") + +set(s_qt_smc777_headers + menuclasses.h +) +if(USE_QT_5) + QT5_WRAP_CPP(s_qt_smc777_headers_MOC ${s_qt_smc777_headers}) +else() + QT4_WRAP_CPP(s_qt_smc777_headers_MOC ${s_qt_smc777_headers}) +endif() + +add_library(qt_smc777 + MainWindow.cpp + ${s_qt_smc777_headers_MOC} +) + + diff --git a/source/src/qt/smc777/MainWindow.cpp b/source/src/qt/smc777/MainWindow.cpp new file mode 100644 index 000000000..c685a5ef9 --- /dev/null +++ b/source/src/qt/smc777/MainWindow.cpp @@ -0,0 +1,64 @@ +/* + * Common Source code Project: + * Ui->Qt->MainWindow for SMC777/SMC70 . + * (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 "commonclasses.h" +#include "menuclasses.h" +#include "emu.h" +#include "qt_main.h" + +//QT_BEGIN_NAMESPACE + + +void META_MainWindow::setupUI_Emu(void) +{ +} + +void META_MainWindow::retranslateUi(void) +{ + retranslateControlMenu("RESET", true); + actionReset->setVisible(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) +{ + retranslateUi(); +} + + +META_MainWindow::~META_MainWindow() +{ +} + +//QT_END_NAMESPACE + + + diff --git a/source/src/qt/smc777/menuclasses.h b/source/src/qt/smc777/menuclasses.h new file mode 100644 index 000000000..abc617c08 --- /dev/null +++ b/source/src/qt/smc777/menuclasses.h @@ -0,0 +1,31 @@ + + + +#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; +// wrote of MSX1 Specific menu. +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/smc777/CMakeLists.txt b/source/src/vm/smc777/CMakeLists.txt new file mode 100644 index 000000000..768e39708 --- /dev/null +++ b/source/src/vm/smc777/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.6) + +message("* vm/smc777") + +add_library(vm_smc777 + smc777.cpp + io.cpp + ) diff --git a/source/src/vm/smc777/smc777.cpp b/source/src/vm/smc777/smc777.cpp index 9020c28ba..c8890479c 100644 --- a/source/src/vm/smc777/smc777.cpp +++ b/source/src/vm/smc777/smc777.cpp @@ -278,6 +278,11 @@ void VM::push_fast_rewind() drec->set_remote(true); } +bool VM::get_tape_play(void) +{ + return drec->get_tape_play(); +} + bool VM::now_skip() { return event->now_skip(); diff --git a/source/src/vm/smc777/smc777.h b/source/src/vm/smc777/smc777.h index 5d394b8df..b3c487ed0 100644 --- a/source/src/vm/smc777/smc777.h +++ b/source/src/vm/smc777/smc777.h @@ -205,6 +205,7 @@ public: void push_fast_rewind(); void push_apss_forward() {} void push_apss_rewind() {} + bool get_tape_play(void); bool now_skip(); void update_config(); -- 2.11.0