From a310fbf3138dd375444df531619d7ff3485edfdc Mon Sep 17 00:00:00 2001 From: InvisibleUp Date: Fri, 1 May 2020 01:22:11 -0400 Subject: [PATCH] Finish (kinda half-baked) CMake file The build itself is very broken due to the missing Sony driver patch... but it does, technically, compile and run. --- .gitignore | 3 +- CMakeLists.txt | 222 ++++++++++++++++++ CMakeLists.txt.indev | 24 -- cfg/EMCONFIG.h | 150 +----------- cfg/{EMCONFIG_MacII.h => MACII.h.bak} | 31 +-- cfg/MACPLUS.h | 139 +++++++++++ src/HW/ADB/ADBEMDEV.c | 8 +- src/PATCHES/ROMEMDEV.c | 5 +- src/UI/{XPLAT => SDL2}/OSGLUSD2.c | 0 src/UI/{ => _deprecated}/MACOSX/ICONAPPO.icns | Bin src/UI/{ => _deprecated}/MACOSX/ICONDSKO.icns | Bin src/UI/{ => _deprecated}/MACOSX/ICONROMO.icns | Bin src/UI/{ => _deprecated}/MACOSX/OSGLUCCO.m | 0 src/UI/{ => _deprecated}/MACOSX/OSGLUOSX.c | 0 src/UI/{ => _deprecated}/NDS/OSGLUNDS.c | 0 src/UI/{ => _deprecated}/OLDMAC/ICONAPPM.r | 0 src/UI/{ => _deprecated}/OLDMAC/ICONDSKM.r | 0 src/UI/{ => _deprecated}/OLDMAC/ICONROMM.r | 0 src/UI/{ => _deprecated}/OLDMAC/OSGLUMAC.c | 0 src/UI/{ => _deprecated}/OLDMAC/main.r | 0 src/UI/_deprecated/README.md | 17 ++ src/UI/{ => _deprecated}/UNIX/OSGLUXWN.c | 0 src/UI/{ => _deprecated}/XPLAT/OSGLUGTK.c | 0 src/UI/{ => _deprecated}/XPLAT/OSGLUSDL.c | 0 24 files changed, 401 insertions(+), 198 deletions(-) create mode 100644 CMakeLists.txt delete mode 100644 CMakeLists.txt.indev rename cfg/{EMCONFIG_MacII.h => MACII.h.bak} (91%) create mode 100644 cfg/MACPLUS.h rename src/UI/{XPLAT => SDL2}/OSGLUSD2.c (100%) rename src/UI/{ => _deprecated}/MACOSX/ICONAPPO.icns (100%) rename src/UI/{ => _deprecated}/MACOSX/ICONDSKO.icns (100%) rename src/UI/{ => _deprecated}/MACOSX/ICONROMO.icns (100%) rename src/UI/{ => _deprecated}/MACOSX/OSGLUCCO.m (100%) rename src/UI/{ => _deprecated}/MACOSX/OSGLUOSX.c (100%) rename src/UI/{ => _deprecated}/NDS/OSGLUNDS.c (100%) rename src/UI/{ => _deprecated}/OLDMAC/ICONAPPM.r (100%) rename src/UI/{ => _deprecated}/OLDMAC/ICONDSKM.r (100%) rename src/UI/{ => _deprecated}/OLDMAC/ICONROMM.r (100%) rename src/UI/{ => _deprecated}/OLDMAC/OSGLUMAC.c (100%) rename src/UI/{ => _deprecated}/OLDMAC/main.r (100%) create mode 100644 src/UI/_deprecated/README.md rename src/UI/{ => _deprecated}/UNIX/OSGLUXWN.c (100%) rename src/UI/{ => _deprecated}/XPLAT/OSGLUGTK.c (100%) rename src/UI/{ => _deprecated}/XPLAT/OSGLUSDL.c (100%) diff --git a/.gitignore b/.gitignore index e25f944..62f7b4b 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ bld *.dsk *.ROM *.kdev4 -*.pdb \ No newline at end of file +*.pdb +build/ \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c015eaa --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,222 @@ +cmake_minimum_required(VERSION 3.1) + +if(${CMAKE_VERSION} VERSION_LESS 3.15) + cmake_policy(VERSION ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}) +else() + cmake_policy(VERSION 3.15) +endif() + +project( + microvmac + VERSION 0.37.0 + DESCRIPTION "68k Macintosh emulator" + LANGUAGES C +) + +# For now, only target WIN32; just to make sure everything still works +#set(TARGET_PLATFORM AUTO CACHE STRING "Set platform to compile for") +#set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS WINDOWS SDL2) + +# Git submodule libraries +add_library(incbin INTERFACE) +target_include_directories(incbin INTERFACE src/incbin/) + +# Hardware libraries +# Some are temporarily disabled while I get CMake up and running + +#add_library( +# hw_adb OBJECT +# src/HW/ADB/ADBEMDEV.c +#) +#target_include_directories(hw_adb PRIVATE src/ cfg/) +#target_include_directories(hw_adb PRIVATE src/HW/ADB/) +#target_compile_definitions(hw_adb PUBLIC EmADB=1) + +add_library( + hw_disk OBJECT + src/HW/DISK/IWMEMDEV.c + src/HW/DISK/SONYEMDV.c +) +target_include_directories(hw_disk PRIVATE src/ cfg/) +target_include_directories(hw_disk PRIVATE src/HW/DISK/) + +add_library( + hw_kbrd OBJECT + src/HW/KBRD/KBRDEMDV.c +) +target_include_directories(hw_kbrd PRIVATE src/ cfg/) +target_include_directories(hw_kbrd PRIVATE src/HW/KBRD/) +target_compile_definitions(hw_kbrd PUBLIC EmClassicKbrd=1) + +add_library( + hw_m68k OBJECT +# src/HW/M68K/DISAM68K.c + src/HW/M68K/M68KITAB.c + src/HW/M68K/MINEM68K.c +) +target_include_directories(hw_m68k PRIVATE src/ cfg/) +target_include_directories(hw_m68k PUBLIC src/HW/M68K/) + +add_library( + hw_mouse OBJECT + src/HW/MOUSE/MOUSEMDV.c +) +target_include_directories(hw_mouse PRIVATE src/ cfg/) +target_include_directories(hw_mouse PRIVATE src/HW/MOUSE/) + +#add_library( +# hw_powerman OBJECT +# src/HW/POWERMAN/PMUEMDEV.c +#) +#target_include_directories(hw_powerman PRIVATE src/ cfg/) +#target_include_directories(hw_powerman PRIVATE src/HW/POWERMAN/) +#target_compile_definitions(hw_powerman PUBLIC EmPMU=1) + +add_library( + hw_rtc OBJECT + src/HW/RTC/RTCEMDEV.c +) +target_include_directories(hw_rtc PRIVATE src/ cfg/) +target_include_directories(hw_rtc PRIVATE src/HW/RTC/) +target_compile_definitions(hw_rtc PUBLIC EmRtc=1) + +add_library( + hw_scc OBJECT + src/HW/SCC/SCCEMDEV.c +) +target_include_directories(hw_scc PRIVATE src/ cfg/) +target_include_directories(hw_scc PRIVATE src/HW/SCC/) + +add_library( + hw_screen OBJECT + src/HW/SCREEN/SCRNEMDV.c +) +target_include_directories(hw_screen PRIVATE src/ cfg/) +target_include_directories(hw_screen PRIVATE src/HW/SCREEN/) + +add_library( + hw_scsi OBJECT + src/HW/SCSI/SCSIEMDV.c +) +target_include_directories(hw_scsi PRIVATE src/ cfg/) +target_include_directories(hw_scsi PRIVATE src/HW/SCSI/) + +add_library( + hw_sound OBJECT +# src/HW/SOUND/ASCEMDEV.c + src/HW/SOUND/SNDEMDEV.c +) +target_include_directories(hw_sound PRIVATE src/ cfg/) +target_include_directories(hw_sound PRIVATE src/HW/SOUND/) + +add_library( + hw_via1 OBJECT + src/HW/VIA/VIAEMDEV.c +) +target_include_directories(hw_via1 PRIVATE src/ cfg/) +target_include_directories(hw_via1 PRIVATE src/HW/VIA/) + +#add_library( +# hw_via2 OBJECT +# src/HW/VIA/VIA2EMDV.c +#) +#target_include_directories(hw_via2 PRIVATE src/ cfg/) +#target_include_directories(hw_via2 PRIVATE src/HW/VIA/) +#target_compile_definitions(hw_via2 PUBLIC EmVIA2=1) + +#add_library( +# hw_vidcard OBJECT +# src/HW/VIDCARD/VIDEMDEV.c +#) +#target_include_directories(hw_vidcard PRIVATE src/ cfg/) +#target_include_directories(hw_vidcard PRIVATE src/HW/VIA/) +#target_compile_definitions(hw_vidcard PUBLIC EmVidCard=1) +#target_compile_definitions(hw_vidcard PUBLIC IncludeVidMem=1) + +# Macintosh definitions +add_library(tgt_macbase INTERFACE) # things every Mac has +target_link_libraries( + tgt_macbase INTERFACE + hw_disk + hw_m68k + hw_rtc + hw_sound + hw_via1 +) + +add_library(tgt_macplus INTERFACE) # Macintosh Plus +target_link_libraries( + tgt_macplus INTERFACE + tgt_macbase + hw_screen + hw_mouse + hw_kbrd +) +target_compile_definitions(tgt_macplus INTERFACE CurEmMd=kEmMd_Plus) + +#add_library(tgt_macii INTERFACE) # Macintosh II +#target_link_libraries(tgt_macii INTERFACE tgt_macbase hw_vidcard hw_adb) +#target_compile_definitions(tgt_macii INTERFACE CurEmMd=kEmMd_Plus) + +# User interface definitions + +add_library( + ui_win32 OBJECT + src/UI/COMOSGLU.c + src/UI/CONTROLM.c + src/UI/WIN32/DBGLOG.c + src/UI/WIN32/INTLKBRD.c + src/UI/WIN32/KEYBOARD.c + src/UI/WIN32/OSGLUWIN.c + src/UI/WIN32/SOUND.c + src/UI/WIN32/TIMEDATE.c +# src/UI/WIN32/main.rc +# src/UI/WIN32/ICONAPPW.ico +# src/UI/WIN32/ICONDSKW.ico +# src/UI/WIN32/ICONROMW.ico +) +target_include_directories(ui_win32 PRIVATE cfg/ src/) +target_include_directories(ui_win32 PRIVATE src/UI/ src/UI/WIN32/) +target_link_libraries(ui_win32 PUBLIC winmm ole32 uuid) +#set_source_files_properties(src/UI/WIN32/main.rc PROPERTIES LANGUAGE RC) +#set_source_files_properties(src/UI/WIN32/ICONAPPW.ico PROPERTIES EXTERNAL_OBJECT True) +#set_source_files_properties(src/UI/WIN32/ICONDSKW.ico PROPERTIES EXTERNAL_OBJECT True) +#set_source_files_properties(src/UI/WIN32/ICONROMW.ico PROPERTIES EXTERNAL_OBJECT True) + +#add_library( +# ui_sdl2 OBJECT +# src/UI/COMOSGLU.c +# src/UI/CONTROLM.c +# src/UI/SDL2/OSGLUSD2.c +#) +#target_include_directories(ui_sdl2 PUBLIC src/UI/ src/UI/SDL2/) + +## Final compiled program definition + +add_executable( + microvmac + src/PROGMAIN.c + src/GLOBGLUE.c + src/PATCHES/ROMEMDEV.c + src/UTIL/DATE2SEC.c +) +target_include_directories(microvmac PRIVATE cfg/ src/) +set_target_properties(microvmac PROPERTIES C_STANDARD 99 C_STANDARD_REQUIRED True) +#target_link_libraries(microvmac INTERFACE tgt_macplus) # temporary +target_link_libraries(microvmac PRIVATE incbin ui_win32) + +# temporary, because "INTERFACE" isn't working how I expect it to +target_link_libraries( + microvmac PRIVATE + hw_disk + hw_m68k + hw_rtc + hw_sound + hw_via1 + hw_screen + hw_mouse + hw_kbrd + hw_scc + hw_scsi +) +target_compile_definitions(microvmac PUBLIC CurEmMd=kEmMd_Plus) diff --git a/CMakeLists.txt.indev b/CMakeLists.txt.indev deleted file mode 100644 index e723978..0000000 --- a/CMakeLists.txt.indev +++ /dev/null @@ -1,24 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -project(microvmac) - -set_property(C_STANDARD 99) -set_property(C_STANDARD_REQUIRED True) - -set(TARGET_PLATFORM AUTO CACHE STRING "Set platform to compile for") -set_property(CACHE TARGET_PLATFORM PROPERTY STRINGS WINDOWS X11 OSX OS9 NDS GTK SDL SDL2) - -include_directories(cfg) - -file(GLOB_RECURSE microvmac_SOURCES "src/*.cpp") -file(GLOB_RECURSE microvmac_HEADERS "src/*.h") - -set (microvmac_INCLUDE_DIRS "") -foreach (_headerFile ${microvmac_HEADERS}) - get_filename_component(_dir ${_headerFile} PATH) - list (APPEND microvmac_INCLUDE_DIRS ${_dir}) -endforeach() -list(REMOVE_DUPLICATES microvmac_INCLUDE_DIRS) - -add_executable(microvmac VERSION 0.37.0 ${microvmac_SOURCES}) -target_include_directories(microvmac PRIVATE ${microvmac_INCLUDE_DIRS}) diff --git a/cfg/EMCONFIG.h b/cfg/EMCONFIG.h index 929f845..e03ef1a 100644 --- a/cfg/EMCONFIG.h +++ b/cfg/EMCONFIG.h @@ -10,31 +10,9 @@ #ifndef EMCONFIG_H #define EMCONFIG_H -#define EmClassicKbrd 1 -#define EmADB 0 -#define EmRTC 1 -#define EmPMU 0 -#define EmVIA2 0 -#define Use68020 0 -#define EmFPU 0 -#define EmMMU 0 -#define EmASC 0 +//#define CurEmMd kEmMd_Plus -#define CurEmMd kEmMd_Plus - -#define ClockMult 1 - -#define WantCycByPriOp 1 -#define WantCloserCyc 0 - -#define kRAMa_Size 0x00200000 -#define kRAMb_Size 0x00200000 - -#define IncludeVidMem 0 - -#define EmVidCard 0 - -#define MaxATTListN 16 +#define MaxATTListN 32 #define IncludeExtnPbufs 1 #define IncludeExtnHostTextClipExchange 1 @@ -49,125 +27,11 @@ #define AutoKeyThresh 0x06 #define AutoKeyRate 0x03 - -/* the Wire variables are 1/0, not true/false */ - -enum { - - Wire_VIA1_iA0_SoundVolb0, -#define SoundVolb0 (Wires[Wire_VIA1_iA0_SoundVolb0]) -#define VIA1_iA0 (Wires[Wire_VIA1_iA0_SoundVolb0]) - - Wire_VIA1_iA1_SoundVolb1, -#define SoundVolb1 (Wires[Wire_VIA1_iA1_SoundVolb1]) -#define VIA1_iA1 (Wires[Wire_VIA1_iA1_SoundVolb1]) - - Wire_VIA1_iA2_SoundVolb2, -#define SoundVolb2 (Wires[Wire_VIA1_iA2_SoundVolb2]) -#define VIA1_iA2 (Wires[Wire_VIA1_iA2_SoundVolb2]) - - Wire_VIA1_iA4_MemOverlay, -#define MemOverlay (Wires[Wire_VIA1_iA4_MemOverlay]) -#define VIA1_iA4 (Wires[Wire_VIA1_iA4_MemOverlay]) -#define VIA1_iA4_ChangeNtfy MemOverlay_ChangeNtfy - - Wire_VIA1_iA6_SCRNvPage2, -#define SCRNvPage2 (Wires[Wire_VIA1_iA6_SCRNvPage2]) -#define VIA1_iA6 (Wires[Wire_VIA1_iA6_SCRNvPage2]) - - Wire_VIA1_iA5_IWMvSel, -#define IWMvSel (Wires[Wire_VIA1_iA5_IWMvSel]) -#define VIA1_iA5 (Wires[Wire_VIA1_iA5_IWMvSel]) - - Wire_VIA1_iA7_SCCwaitrq, -#define SCCwaitrq (Wires[Wire_VIA1_iA7_SCCwaitrq]) -#define VIA1_iA7 (Wires[Wire_VIA1_iA7_SCCwaitrq]) - - Wire_VIA1_iB0_RTCdataLine, -#define RTCdataLine (Wires[Wire_VIA1_iB0_RTCdataLine]) -#define VIA1_iB0 (Wires[Wire_VIA1_iB0_RTCdataLine]) -#define VIA1_iB0_ChangeNtfy RTCdataLine_ChangeNtfy - - Wire_VIA1_iB1_RTCclock, -#define RTCclock (Wires[Wire_VIA1_iB1_RTCclock]) -#define VIA1_iB1 (Wires[Wire_VIA1_iB1_RTCclock]) -#define VIA1_iB1_ChangeNtfy RTCclock_ChangeNtfy - - Wire_VIA1_iB2_RTCunEnabled, -#define RTCunEnabled (Wires[Wire_VIA1_iB2_RTCunEnabled]) -#define VIA1_iB2 (Wires[Wire_VIA1_iB2_RTCunEnabled]) -#define VIA1_iB2_ChangeNtfy RTCunEnabled_ChangeNtfy - - Wire_VIA1_iA3_SoundBuffer, -#define SoundBuffer (Wires[Wire_VIA1_iA3_SoundBuffer]) -#define VIA1_iA3 (Wires[Wire_VIA1_iA3_SoundBuffer]) - - Wire_VIA1_iB3_MouseBtnUp, -#define MouseBtnUp (Wires[Wire_VIA1_iB3_MouseBtnUp]) -#define VIA1_iB3 (Wires[Wire_VIA1_iB3_MouseBtnUp]) - - Wire_VIA1_iB4_MouseX2, -#define MouseX2 (Wires[Wire_VIA1_iB4_MouseX2]) -#define VIA1_iB4 (Wires[Wire_VIA1_iB4_MouseX2]) - - Wire_VIA1_iB5_MouseY2, -#define MouseY2 (Wires[Wire_VIA1_iB5_MouseY2]) -#define VIA1_iB5 (Wires[Wire_VIA1_iB5_MouseY2]) - - Wire_VIA1_iCB2_KybdDat, -#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_KybdDat]) -#define VIA1_iCB2_ChangeNtfy Kybd_DataLineChngNtfy - - Wire_VIA1_iB6_SCRNbeamInVid, -#define SCRNbeamInVid (Wires[Wire_VIA1_iB6_SCRNbeamInVid]) -#define VIA1_iB6 (Wires[Wire_VIA1_iB6_SCRNbeamInVid]) - - Wire_VIA1_iB7_SoundDisable, -#define SoundDisable (Wires[Wire_VIA1_iB7_SoundDisable]) -#define VIA1_iB7 (Wires[Wire_VIA1_iB7_SoundDisable]) - - Wire_VIA1_InterruptRequest, -#define VIA1_InterruptRequest (Wires[Wire_VIA1_InterruptRequest]) -#define VIA1_interruptChngNtfy VIAorSCCinterruptChngNtfy - - Wire_SCCInterruptRequest, -#define SCCInterruptRequest (Wires[Wire_SCCInterruptRequest]) -#define SCCinterruptChngNtfy VIAorSCCinterruptChngNtfy - - kNumWires -}; - - -/* VIA configuration */ -#define VIA1_ORA_FloatVal 0xFF -#define VIA1_ORB_FloatVal 0xFF -#define VIA1_ORA_CanIn 0x80 -#define VIA1_ORA_CanOut 0x7F -#define VIA1_ORB_CanIn 0x79 -#define VIA1_ORB_CanOut 0x87 -#define VIA1_IER_Never0 (1 << 1) -#define VIA1_IER_Never1 ((1 << 3) | (1 << 4)) -#define VIA1_CB2modesAllowed 0x01 -#define VIA1_CA2modesAllowed 0x01 - -#define Mouse_Enabled SCC_InterruptsEnabled - -#define VIA1_iCA1_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy -#define Sixtieth_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy - -#define VIA1_iCA2_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy -#define RTC_OneSecond_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy - -#define GetSoundInvertTime VIA1_GetT1InvertTime - -#define KYBD_ShiftInData VIA1_ShiftOutData -#define KYBD_ShiftOutData VIA1_ShiftInData - -#define kExtn_Block_Base 0x00F40000 -#define kExtn_ln2Spc 5 - -#define kROM_Base 0x00400000 -#define kROM_ln2Spc 20 +#if (CurEmMd == kEmMd_Plus) +#include "MACPLUS.h" +#elif (CurEmMd == kEmMd_II) +#include "MACII.h" +#endif #define WantDisasm 0 #define ExtraAbnormalReports 0 diff --git a/cfg/EMCONFIG_MacII.h b/cfg/MACII.h.bak similarity index 91% rename from cfg/EMCONFIG_MacII.h rename to cfg/MACII.h.bak index 89507db..1595685 100644 --- a/cfg/EMCONFIG_MacII.h +++ b/cfg/MACII.h.bak @@ -7,18 +7,16 @@ you know what you're doing. */ -#define EmClassicKbrd 0 -#define EmADB 1 -#define EmRTC 1 -#define EmPMU 0 -#define EmVIA2 1 +//#define EmClassicKbrd 0 +//#define EmADB 1 +//#define EmRTC 1 +//#define EmPMU 0 +//#define EmVIA2 1 #define Use68020 1 #define EmFPU 1 #define EmMMU 0 #define EmASC 1 -#define CurEmMd kEmMd_II - #define kMyClockMult 2 #define WantCycByPriOp 0 @@ -38,22 +36,6 @@ #define EmVidCard 1 #define kVidROM_Size 0x000800 -#define MaxATTListN 20 -#define IncludeExtnPbufs 0 -#define IncludeExtnHostTextClipExchange 0 - -#define Sony_SupportDC42 1 -#define Sony_SupportTags 0 -#define Sony_WantChecksumsUpdated 0 -#define Sony_VerifyChecksums 0 -#define CaretBlinkTime 0x08 -#define SpeakerVol 0x07 -#define DoubleClickTime 0x08 -#define MenuBlink 0x03 -#define AutoKeyThresh 0x06 -#define AutoKeyRate 0x03 - - /* the Wire variables are 1/0, not true/false */ enum { @@ -232,6 +214,3 @@ enum { #define kROM_Base 0x00800000 #define kROM_ln2Spc 20 - -#define WantDisasm 0 -#define ExtraAbnormalReports 0 diff --git a/cfg/MACPLUS.h b/cfg/MACPLUS.h new file mode 100644 index 0000000..6a7820b --- /dev/null +++ b/cfg/MACPLUS.h @@ -0,0 +1,139 @@ +#define EmClassicKbrd 1 +#define EmADB 0 +#define EmRTC 1 +#define EmPMU 0 +#define EmVIA2 0 +#define Use68020 0 +#define EmFPU 0 +#define EmMMU 0 +#define EmASC 0 + +#define ClockMult 1 + +#define WantCycByPriOp 1 +#define WantCloserCyc 0 + +#define kRAMa_Size 0x00200000 +#define kRAMb_Size 0x00200000 + +#define IncludeVidMem 0 +#define EmVidCard 0 + +/* the Wire variables are 1/0, not true/false */ + +enum { + + Wire_VIA1_iA0_SoundVolb0, +#define SoundVolb0 (Wires[Wire_VIA1_iA0_SoundVolb0]) +#define VIA1_iA0 (Wires[Wire_VIA1_iA0_SoundVolb0]) + + Wire_VIA1_iA1_SoundVolb1, +#define SoundVolb1 (Wires[Wire_VIA1_iA1_SoundVolb1]) +#define VIA1_iA1 (Wires[Wire_VIA1_iA1_SoundVolb1]) + + Wire_VIA1_iA2_SoundVolb2, +#define SoundVolb2 (Wires[Wire_VIA1_iA2_SoundVolb2]) +#define VIA1_iA2 (Wires[Wire_VIA1_iA2_SoundVolb2]) + + Wire_VIA1_iA4_MemOverlay, +#define MemOverlay (Wires[Wire_VIA1_iA4_MemOverlay]) +#define VIA1_iA4 (Wires[Wire_VIA1_iA4_MemOverlay]) +#define VIA1_iA4_ChangeNtfy MemOverlay_ChangeNtfy + + Wire_VIA1_iA6_SCRNvPage2, +#define SCRNvPage2 (Wires[Wire_VIA1_iA6_SCRNvPage2]) +#define VIA1_iA6 (Wires[Wire_VIA1_iA6_SCRNvPage2]) + + Wire_VIA1_iA5_IWMvSel, +#define IWMvSel (Wires[Wire_VIA1_iA5_IWMvSel]) +#define VIA1_iA5 (Wires[Wire_VIA1_iA5_IWMvSel]) + + Wire_VIA1_iA7_SCCwaitrq, +#define SCCwaitrq (Wires[Wire_VIA1_iA7_SCCwaitrq]) +#define VIA1_iA7 (Wires[Wire_VIA1_iA7_SCCwaitrq]) + + Wire_VIA1_iB0_RTCdataLine, +#define RTCdataLine (Wires[Wire_VIA1_iB0_RTCdataLine]) +#define VIA1_iB0 (Wires[Wire_VIA1_iB0_RTCdataLine]) +#define VIA1_iB0_ChangeNtfy RTCdataLine_ChangeNtfy + + Wire_VIA1_iB1_RTCclock, +#define RTCclock (Wires[Wire_VIA1_iB1_RTCclock]) +#define VIA1_iB1 (Wires[Wire_VIA1_iB1_RTCclock]) +#define VIA1_iB1_ChangeNtfy RTCclock_ChangeNtfy + + Wire_VIA1_iB2_RTCunEnabled, +#define RTCunEnabled (Wires[Wire_VIA1_iB2_RTCunEnabled]) +#define VIA1_iB2 (Wires[Wire_VIA1_iB2_RTCunEnabled]) +#define VIA1_iB2_ChangeNtfy RTCunEnabled_ChangeNtfy + + Wire_VIA1_iA3_SoundBuffer, +#define SoundBuffer (Wires[Wire_VIA1_iA3_SoundBuffer]) +#define VIA1_iA3 (Wires[Wire_VIA1_iA3_SoundBuffer]) + + Wire_VIA1_iB3_MouseBtnUp, +#define MouseBtnUp (Wires[Wire_VIA1_iB3_MouseBtnUp]) +#define VIA1_iB3 (Wires[Wire_VIA1_iB3_MouseBtnUp]) + + Wire_VIA1_iB4_MouseX2, +#define MouseX2 (Wires[Wire_VIA1_iB4_MouseX2]) +#define VIA1_iB4 (Wires[Wire_VIA1_iB4_MouseX2]) + + Wire_VIA1_iB5_MouseY2, +#define MouseY2 (Wires[Wire_VIA1_iB5_MouseY2]) +#define VIA1_iB5 (Wires[Wire_VIA1_iB5_MouseY2]) + + Wire_VIA1_iCB2_KybdDat, +#define VIA1_iCB2 (Wires[Wire_VIA1_iCB2_KybdDat]) +#define VIA1_iCB2_ChangeNtfy Kybd_DataLineChngNtfy + + Wire_VIA1_iB6_SCRNbeamInVid, +#define SCRNbeamInVid (Wires[Wire_VIA1_iB6_SCRNbeamInVid]) +#define VIA1_iB6 (Wires[Wire_VIA1_iB6_SCRNbeamInVid]) + + Wire_VIA1_iB7_SoundDisable, +#define SoundDisable (Wires[Wire_VIA1_iB7_SoundDisable]) +#define VIA1_iB7 (Wires[Wire_VIA1_iB7_SoundDisable]) + + Wire_VIA1_InterruptRequest, +#define VIA1_InterruptRequest (Wires[Wire_VIA1_InterruptRequest]) +#define VIA1_interruptChngNtfy VIAorSCCinterruptChngNtfy + + Wire_SCCInterruptRequest, +#define SCCInterruptRequest (Wires[Wire_SCCInterruptRequest]) +#define SCCinterruptChngNtfy VIAorSCCinterruptChngNtfy + + kNumWires +}; + + +/* VIA configuration */ +#define VIA1_ORA_FloatVal 0xFF +#define VIA1_ORB_FloatVal 0xFF +#define VIA1_ORA_CanIn 0x80 +#define VIA1_ORA_CanOut 0x7F +#define VIA1_ORB_CanIn 0x79 +#define VIA1_ORB_CanOut 0x87 +#define VIA1_IER_Never0 (1 << 1) +#define VIA1_IER_Never1 ((1 << 3) | (1 << 4)) +#define VIA1_CB2modesAllowed 0x01 +#define VIA1_CA2modesAllowed 0x01 + +#define Mouse_Enabled SCC_InterruptsEnabled + +#define VIA1_iCA1_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy +#define Sixtieth_PulseNtfy VIA1_iCA1_Sixtieth_PulseNtfy + +#define VIA1_iCA2_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy +#define RTC_OneSecond_PulseNtfy VIA1_iCA2_RTC_OneSecond_PulseNtfy + +#define GetSoundInvertTime VIA1_GetT1InvertTime + +#define KYBD_ShiftInData VIA1_ShiftOutData +#define KYBD_ShiftOutData VIA1_ShiftInData + +#define kExtn_Block_Base 0x00F40000 +#define kExtn_ln2Spc 5 + +#define kROM_Base 0x00400000 +#define kROM_ln2Spc 20 diff --git a/src/HW/ADB/ADBEMDEV.c b/src/HW/ADB/ADBEMDEV.c index 744e6b4..1025618 100644 --- a/src/HW/ADB/ADBEMDEV.c +++ b/src/HW/ADB/ADBEMDEV.c @@ -18,11 +18,13 @@ Apple Desktop Bus EMulated DEVice */ +#if EmADB + #ifndef AllFiles -#include "SYSDEPNS.h" -#include "UI/MYOSGLUE.h" #include "EMCONFIG.h" +#include "SYSDEPNS.h" #include "GLOBGLUE.h" +#include "UI/MYOSGLUE.h" #endif #include "HW/ADB/ADBEMDEV.h" @@ -212,3 +214,5 @@ GLOBALPROC ADB_Update(void) } } } + +#endif diff --git a/src/PATCHES/ROMEMDEV.c b/src/PATCHES/ROMEMDEV.c index 3ee4b53..ab9f26d 100644 --- a/src/PATCHES/ROMEMDEV.c +++ b/src/PATCHES/ROMEMDEV.c @@ -36,9 +36,10 @@ #include "incbin/incbin.h" #include "PATCHES/ROMEMDEV.h" -#define UseSonyPatch \ +// Temporarily disable due to CMake errors +/*#define UseSonyPatch \ ((CurEmMd <= kEmMd_Classic) || (CurEmMd == kEmMd_II) \ - || (CurEmMd == kEmMd_IIx)) + || (CurEmMd == kEmMd_IIx))*/ #ifndef UseLargeScreenHack #define UseLargeScreenHack 0 diff --git a/src/UI/XPLAT/OSGLUSD2.c b/src/UI/SDL2/OSGLUSD2.c similarity index 100% rename from src/UI/XPLAT/OSGLUSD2.c rename to src/UI/SDL2/OSGLUSD2.c diff --git a/src/UI/MACOSX/ICONAPPO.icns b/src/UI/_deprecated/MACOSX/ICONAPPO.icns similarity index 100% rename from src/UI/MACOSX/ICONAPPO.icns rename to src/UI/_deprecated/MACOSX/ICONAPPO.icns diff --git a/src/UI/MACOSX/ICONDSKO.icns b/src/UI/_deprecated/MACOSX/ICONDSKO.icns similarity index 100% rename from src/UI/MACOSX/ICONDSKO.icns rename to src/UI/_deprecated/MACOSX/ICONDSKO.icns diff --git a/src/UI/MACOSX/ICONROMO.icns b/src/UI/_deprecated/MACOSX/ICONROMO.icns similarity index 100% rename from src/UI/MACOSX/ICONROMO.icns rename to src/UI/_deprecated/MACOSX/ICONROMO.icns diff --git a/src/UI/MACOSX/OSGLUCCO.m b/src/UI/_deprecated/MACOSX/OSGLUCCO.m similarity index 100% rename from src/UI/MACOSX/OSGLUCCO.m rename to src/UI/_deprecated/MACOSX/OSGLUCCO.m diff --git a/src/UI/MACOSX/OSGLUOSX.c b/src/UI/_deprecated/MACOSX/OSGLUOSX.c similarity index 100% rename from src/UI/MACOSX/OSGLUOSX.c rename to src/UI/_deprecated/MACOSX/OSGLUOSX.c diff --git a/src/UI/NDS/OSGLUNDS.c b/src/UI/_deprecated/NDS/OSGLUNDS.c similarity index 100% rename from src/UI/NDS/OSGLUNDS.c rename to src/UI/_deprecated/NDS/OSGLUNDS.c diff --git a/src/UI/OLDMAC/ICONAPPM.r b/src/UI/_deprecated/OLDMAC/ICONAPPM.r similarity index 100% rename from src/UI/OLDMAC/ICONAPPM.r rename to src/UI/_deprecated/OLDMAC/ICONAPPM.r diff --git a/src/UI/OLDMAC/ICONDSKM.r b/src/UI/_deprecated/OLDMAC/ICONDSKM.r similarity index 100% rename from src/UI/OLDMAC/ICONDSKM.r rename to src/UI/_deprecated/OLDMAC/ICONDSKM.r diff --git a/src/UI/OLDMAC/ICONROMM.r b/src/UI/_deprecated/OLDMAC/ICONROMM.r similarity index 100% rename from src/UI/OLDMAC/ICONROMM.r rename to src/UI/_deprecated/OLDMAC/ICONROMM.r diff --git a/src/UI/OLDMAC/OSGLUMAC.c b/src/UI/_deprecated/OLDMAC/OSGLUMAC.c similarity index 100% rename from src/UI/OLDMAC/OSGLUMAC.c rename to src/UI/_deprecated/OLDMAC/OSGLUMAC.c diff --git a/src/UI/OLDMAC/main.r b/src/UI/_deprecated/OLDMAC/main.r similarity index 100% rename from src/UI/OLDMAC/main.r rename to src/UI/_deprecated/OLDMAC/main.r diff --git a/src/UI/_deprecated/README.md b/src/UI/_deprecated/README.md new file mode 100644 index 0000000..66ef455 --- /dev/null +++ b/src/UI/_deprecated/README.md @@ -0,0 +1,17 @@ +# Deprecated targets + +Targets that I'm not in a position to maintain right now. Perhaps they'll come +back from the dead one day. (MACOSX especially; I don't own any computer that +runs that at the moment...) + +Do not expect any of these targets to build. + +- `MACOSX`: macOS / Mac OS X +- `NDS`: Nintendo DS +- `OLDMAC`: Classic Mac OS +- `UNIX`: raw X11 +- `XPLAT/OSGLUGTK.c`: GTK (Linux) +- `XPLAT/OSGLUSDL.c`: SDL 1.2 (or lower?); might be useful for archaic systems + +While compatibility with old/esoteric operating systems is neat, the primary +focus will be on SDL2 moving forwards. diff --git a/src/UI/UNIX/OSGLUXWN.c b/src/UI/_deprecated/UNIX/OSGLUXWN.c similarity index 100% rename from src/UI/UNIX/OSGLUXWN.c rename to src/UI/_deprecated/UNIX/OSGLUXWN.c diff --git a/src/UI/XPLAT/OSGLUGTK.c b/src/UI/_deprecated/XPLAT/OSGLUGTK.c similarity index 100% rename from src/UI/XPLAT/OSGLUGTK.c rename to src/UI/_deprecated/XPLAT/OSGLUGTK.c diff --git a/src/UI/XPLAT/OSGLUSDL.c b/src/UI/_deprecated/XPLAT/OSGLUSDL.c similarity index 100% rename from src/UI/XPLAT/OSGLUSDL.c rename to src/UI/_deprecated/XPLAT/OSGLUSDL.c