OSDN Git Service

[VM][General] Add Sharp SM-B-80TE .
authorK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 6 Jan 2017 10:11:07 +0000 (19:11 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Fri, 6 Jan 2017 10:11:07 +0000 (19:11 +0900)
doc/VMs/smb80te.txt [new file with mode: 0644]
source/build-cmake/smb80te/CMakeLists.txt [new file with mode: 0644]
source/src/qt/common/qrc/shaders.qrc
source/src/qt/common/qrc/smb80te.qrc [new file with mode: 0644]
source/src/qt/machines/smb80te/CMakeLists.txt [new file with mode: 0644]
source/src/qt/machines/smb80te/MainWindow.cpp [new file with mode: 0644]
source/src/qt/machines/smb80te/menuclasses.h [new file with mode: 0644]
source/src/res/smb80te.ico [new file with mode: 0644]
source/src/vm/smb80te/CMakeLists.txt [new file with mode: 0644]

diff --git a/doc/VMs/smb80te.txt b/doc/VMs/smb80te.txt
new file mode 100644 (file)
index 0000000..52a8449
--- /dev/null
@@ -0,0 +1,27 @@
+"eSM-B-80TE" - SHARP SM-B-80TE Emulator for Win32
+                                                               12/29/2015
+
+--- Internal ROM images
+
+       MON.ROM         $8000-$87FF
+       USER.ROM        $8800-$8FFF (optional)
+
+
+--- Key maps
+
+       Virtual         PC
+       --------------------------------
+       RUN             F1
+       STEP            F2
+       LD/INC          F3 or PgUp
+       STOR/DEC        F4 or PgDn
+       SHIFT           F5 or Shift
+       REG'/REG        F6
+       ADRS            F7
+       WR              F8 or Enter
+       0-9,A-F         0-9,A-F
+
+----------------------------------------
+TAKEDA, toshiya
+t-takeda@m1.interq.or.jp
+http://takeda-toshiya.my.coocan.jp/
diff --git a/source/build-cmake/smb80te/CMakeLists.txt b/source/build-cmake/smb80te/CMakeLists.txt
new file mode 100644 (file)
index 0000000..44f58c5
--- /dev/null
@@ -0,0 +1,48 @@
+# Build Common Sourcecode Project, Qt.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# 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,SM-B-80TE, Qt **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+
+project (emuemb80te)
+set(EXEC_TARGET emusmb80te)
+set(VM_NAME smb80te)
+set(USE_FMGEN OFF)
+set(WITH_JOYSTICK OFF)
+set(WITH_MOUSE ON)
+
+set(VMFILES_BASE
+       z80.cpp
+       z80pio.cpp
+
+       not.cpp
+   
+       io.cpp
+       datarec.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_SMB80TE)
+set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/smb80te.qrc)
+
+include(config_commonsource)
index f655957..6897309 100644 (file)
@@ -4,6 +4,7 @@
     <file alias="tmp_vertex_shader.glsl">../../gui/tmp_vertex_shader.glsl</file>
     <file alias="normal_fragment_shader.glsl">../../gui/normal_fragment_shader.glsl</file>
     <file alias="chromakey_fragment_shader.glsl">../../gui/chromakey_fragment_shader.glsl</file>
+    <file alias="chromakey_fragment_shader2.glsl">../../gui/chromakey_fragment_shader2.glsl</file>
     <file alias="vertex_shader.glsl">../../gui/vertex_shader.glsl</file>
     <file alias="grids_fragment_shader.glsl">../../gui/grids_fragment_shader.glsl</file>
     <file alias="grids_vertex_shader.glsl">../../gui/grids_vertex_shader.glsl</file>
diff --git a/source/src/qt/common/qrc/smb80te.qrc b/source/src/qt/common/qrc/smb80te.qrc
new file mode 100644 (file)
index 0000000..1e27f87
--- /dev/null
@@ -0,0 +1,7 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file alias="default.ico">../../../res/smb80te.ico</file>
+    <file alias="background.png">../../../res/smb80te.png</file>
+    <file alias="bios_and_keys.txt">../../../../../doc/VMs/smb80te.txt</file>
+</qresource>
+</RCC>
diff --git a/source/src/qt/machines/smb80te/CMakeLists.txt b/source/src/qt/machines/smb80te/CMakeLists.txt
new file mode 100644 (file)
index 0000000..18605f1
--- /dev/null
@@ -0,0 +1,16 @@
+message("* qt/smb80te")
+
+set(s_qt_smb80te_headers
+         menuclasses.h
+)
+if(USE_QT_5)
+  QT5_WRAP_CPP(s_qt_smb80te_headers_MOC ${s_qt_smb80te_headers})
+else()
+  QT4_WRAP_CPP(s_qt_smb80te_headers_MOC ${s_qt_smb80te_headers})
+endif()
+add_library(qt_smb80te
+         MainWindow.cpp
+         ${s_qt_smb80te_headers_MOC}
+)
+
+
diff --git a/source/src/qt/machines/smb80te/MainWindow.cpp b/source/src/qt/machines/smb80te/MainWindow.cpp
new file mode 100644 (file)
index 0000000..accd238
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ * Common Source code Project:
+ * Ui->Qt->MainWindow for X1TurboZ .
+ * (C) 2015 K.Ohta <whatisthis.sowhat _at_ gmail.com>
+ *   License : GPLv2
+ *   History :
+ * Jan 14, 2015 : Initial, many of constructors were moved to qt/gui/menu_main.cpp.
+ */
+
+#include <QVariant>
+#include <QtGui>
+#include "commonclasses.h"
+#include "menuclasses.h"
+#include "emu.h"
+#include "qt_main.h"
+
+//QT_BEGIN_NAMESPACE
+extern config_t config;
+
+void META_MainWindow::do_set_adrs_8000(bool flag)
+{
+       if(flag) {
+               config.dipswitch = config.dipswitch | 0x00000001;
+       } else {
+               config.dipswitch = config.dipswitch & ~0x00000001;
+       }
+}
+
+void META_MainWindow::retranslateUi(void)
+{
+
+       retranslateControlMenu("", false);
+       retranslateCMTMenu();
+       retranslateBinaryMenu(0,1);
+       retranslateSoundMenu();
+       retranslateScreenMenu();
+       retranslateMachineMenu();
+       retranslateEmulatorMenu();
+       retranslateUI_Help();
+       actionAddress8000->setText(QApplication::translate("MainWindow", "SW: ADRS SW 8000", 0));
+               
+       this->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", 0));
+       // Set Labels
+#ifdef USE_DEBUGGER
+       actionDebugger[0]->setVisible(true);
+       actionDebugger[1]->setVisible(false);
+       actionDebugger[2]->setVisible(false);
+       actionDebugger[3]->setVisible(false);
+#endif
+       
+} // retranslateUi
+
+void META_MainWindow::setupUI_Emu(void)
+{
+       actionAddress8000 = new QAction(this);
+       actionAddress8000->setCheckable(true);
+       actionAddress8000->setVisible(true);
+       menuMachine->addAction(actionAddress8000);
+       actionAddress8000->setChecked(((config.dipswitch & 0x00000001) != 0) ? true : false);
+       connect(actionAddress8000, SIGNAL(toggled(bool)), this, SLOT(do_set_adrs_8000(bool)));
+}
+
+
+META_MainWindow::META_MainWindow(USING_FLAGS *p, QWidget *parent) : Ui_MainWindow(p, parent)
+{
+       setupUI_Emu();
+       retranslateUi();
+}
+
+
+META_MainWindow::~META_MainWindow()
+{
+}
+
+//QT_END_NAMESPACE
+
+
+
diff --git a/source/src/qt/machines/smb80te/menuclasses.h b/source/src/qt/machines/smb80te/menuclasses.h
new file mode 100644 (file)
index 0000000..6c5d896
--- /dev/null
@@ -0,0 +1,29 @@
+
+#ifndef _CSP_QT_MENUCLASSES_H
+#define _CSP_QT_MENUCLASSES_H
+
+#include "mainwidget.h"
+// This extends class CSP_MainWindow as Ui_MainWindow.
+// You may use this as 
+QT_BEGIN_NAMESPACE
+
+
+class Ui_MainWindow;
+class USING_FLAGS;
+
+class META_MainWindow : public Ui_MainWindow {
+       Q_OBJECT
+protected:
+       void setupUI_Emu(void);
+       void retranslateUi(void);
+       QAction *actionAddress8000;
+public:
+       META_MainWindow(USING_FLAGS *p, QWidget *parent = 0);
+       ~META_MainWindow();
+public slots:
+       void do_set_adrs_8000(bool);
+};
+
+QT_END_NAMESPACE
+
+#endif // END
diff --git a/source/src/res/smb80te.ico b/source/src/res/smb80te.ico
new file mode 100644 (file)
index 0000000..8cf2c32
Binary files /dev/null and b/source/src/res/smb80te.ico differ
diff --git a/source/src/vm/smb80te/CMakeLists.txt b/source/src/vm/smb80te/CMakeLists.txt
new file mode 100644 (file)
index 0000000..6b3f682
--- /dev/null
@@ -0,0 +1,8 @@
+cmake_minimum_required (VERSION 2.6)
+
+message("* vm/smb80te")
+
+add_library(vm_smb80te
+       smb80te.cpp
+       memory.cpp
+)