OSDN Git Service

[VM][Qt] Add NEC PC-8201 .
authorK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 30 Sep 2015 12:58:33 +0000 (21:58 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 30 Sep 2015 12:58:33 +0000 (21:58 +0900)
source/build-cmake/cmake/config_pc8201.cmake [new file with mode: 0644]
source/build-cmake/pc8201/CMakeLists.txt [new file with mode: 0644]
source/build-cmake/pc8201a/CMakeLists.txt [new file with mode: 0644]
source/src/qt/common/qrc/pc8201.qrc [new file with mode: 0644]
source/src/qt/common/qrc/pc8201a.qrc [new file with mode: 0644]
source/src/qt/pc8201/CMakeLists.txt [new file with mode: 0644]
source/src/qt/pc8201/MainWindow.cpp [new file with mode: 0644]
source/src/qt/pc8201/menuclasses.h [new file with mode: 0644]
source/src/vm/pc8201/CMakeLists.txt [new file with mode: 0644]
source/src/vm/pc8201/cmt.cpp

diff --git a/source/build-cmake/cmake/config_pc8201.cmake b/source/build-cmake/cmake/config_pc8201.cmake
new file mode 100644 (file)
index 0000000..6462dee
--- /dev/null
@@ -0,0 +1,69 @@
+# Build Common Sourcecode Project, Agar.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of , but license is apache 2.2,
+# this part was written only me.
+
+cmake_minimum_required (VERSION 2.8)
+cmake_policy(SET CMP0011 NEW)
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+set(LOCAL_LIBS            vm_pc8201
+                  vm_vm
+                  common_common
+                   qt_pc8201
+                  qt_gui
+                  qt_debugger
+                  )
+
+set(VMFILES
+                  i8080.cpp
+                  i8155.cpp
+                  
+                  upd1990a.cpp
+                  
+                  io.cpp
+                  pcm1bit.cpp
+                  datarec.cpp
+                  
+                  event.cpp
+)
+
+
+set(BUILD_SHARED_LIBS OFF)
+
+set(BUILD_PC8201  OFF CACHE BOOL "Build on PC-8201")
+set(BUILD_PC8201A OFF CACHE BOOL "Build on PC-8201A")
+set(USE_CMT_SOUND ON CACHE BOOL "Sound with CMT")
+
+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 witn XM7 Debugger.")
+
+include(detect_target_cpu)
+#include(windows-mingw-cross)
+# set entry
+set(CMAKE_SYSTEM_PROCESSOR ${ARCHITECTURE} CACHE STRING "Set processor to build.")
+
+if(BUILD_PC8201)
+   add_definitions(-D_PC8201)
+   set(EXEC_TARGET emupc8201)
+   set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/pc8201.qrc)
+elseif(BUILD_PC8201A)
+   add_definitions(-D_PC8201A)
+   set(EXEC_TARGET emupc8201a)
+   set(RESOURCE ${CMAKE_SOURCE_DIR}/../../src/qt/common/qrc/pc8201a.qrc)
+endif()
+if(USE_CMT_SOUND)
+   add_definitions(-DDATAREC_SOUND)
+endif()
+
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/vm/pc8201)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/pc8201)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src/qt/debugger)
+
+include(config_commonsource)
+
diff --git a/source/build-cmake/pc8201/CMakeLists.txt b/source/build-cmake/pc8201/CMakeLists.txt
new file mode 100644 (file)
index 0000000..21243a4
--- /dev/null
@@ -0,0 +1,25 @@
+# Build Common Sourcecode Project, Agar.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of , 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,PC8201, Qt **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+
+project (emupc8201)
+set(BUILD_PC8201 ON CACHE BOOL "Build on PC8201")
+
+include(config_pc8201)
+
+add_subdirectory(../../src/vm/pc8201 vm/pc8201)
+add_subdirectory(../../src/qt/pc8201 qt/pc8201) 
+add_subdirectory(../../src/qt/debugger qt/debugger)
+                          
+add_subdirectory(../../src/qt/common qt/common)
diff --git a/source/build-cmake/pc8201a/CMakeLists.txt b/source/build-cmake/pc8201a/CMakeLists.txt
new file mode 100644 (file)
index 0000000..08f6a4c
--- /dev/null
@@ -0,0 +1,25 @@
+# Build Common Sourcecode Project, Agar.
+# (C) 2014 K.Ohta <whatisthis.sowhat@gmail.com>
+# This is part of , 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,PC8201, Qt **")
+message("")
+
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/../cmake")
+
+
+project (emupc8201a)
+set(BUILD_PC8201A ON CACHE BOOL "Build on PC8201A")
+
+include(config_pc8201)
+
+add_subdirectory(../../src/vm/pc8201 vm/pc8201)
+add_subdirectory(../../src/qt/pc8201 qt/pc8201) 
+add_subdirectory(../../src/qt/debugger qt/debugger)
+                          
+add_subdirectory(../../src/qt/common qt/common)
diff --git a/source/src/qt/common/qrc/pc8201.qrc b/source/src/qt/common/qrc/pc8201.qrc
new file mode 100644 (file)
index 0000000..bf42c13
--- /dev/null
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file alias="default.ico">../../../res/pc8201.ico</file>
+</qresource>
+</RCC>
\ No newline at end of file
diff --git a/source/src/qt/common/qrc/pc8201a.qrc b/source/src/qt/common/qrc/pc8201a.qrc
new file mode 100644 (file)
index 0000000..bf42c13
--- /dev/null
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+    <file alias="default.ico">../../../res/pc8201.ico</file>
+</qresource>
+</RCC>
\ No newline at end of file
diff --git a/source/src/qt/pc8201/CMakeLists.txt b/source/src/qt/pc8201/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4fc8391
--- /dev/null
@@ -0,0 +1,18 @@
+message("* qt/pc8201")
+
+set(s_qt_pc8201_headers
+         menuclasses.h
+)
+
+if(USE_QT_5)
+  QT5_WRAP_CPP(s_qt_pc8201_headers_MOC ${s_qt_pc8201_headers})
+else()
+  QT4_WRAP_CPP(s_qt_pc8201_headers_MOC ${s_qt_pc8201_headers})
+endif()
+
+add_library(qt_pc8201
+         MainWindow.cpp
+         ${s_qt_pc8201_headers_MOC}
+)
+
+
diff --git a/source/src/qt/pc8201/MainWindow.cpp b/source/src/qt/pc8201/MainWindow.cpp
new file mode 100644 (file)
index 0000000..e46fa53
--- /dev/null
@@ -0,0 +1,59 @@
+/*
+ * Common Source code Project:
+ * Ui->Qt->MainWindow for PC8201 .
+ * (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 "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);
+       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/pc8201/menuclasses.h b/source/src/qt/pc8201/menuclasses.h
new file mode 100644 (file)
index 0000000..abe8b56
--- /dev/null
@@ -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/pc8201/CMakeLists.txt b/source/src/vm/pc8201/CMakeLists.txt
new file mode 100644 (file)
index 0000000..4c5f4ef
--- /dev/null
@@ -0,0 +1,11 @@
+cmake_minimum_required (VERSION 2.6)
+
+message("* vm/pc8201")
+
+add_library(vm_pc8201
+  pc8201.cpp
+  cmt.cpp
+  keyboard.cpp
+  lcd.cpp
+  memory.cpp
+)
index b6a92a8..247e8e8 100644 (file)
 
 #define SAMPLE_RATE 48000
 
+#if !defined(MSC_VER)
+static inline int min(int a, int b)
+{
+       if(a < b) return a;
+       return b;
+}
+#endif
 void CMT::initialize()
 {
        fio = new FILEIO();