From 8d7ac82f8397bba968088d6b94954506c8a74b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesu=CC=81s=20A=2E=20A=CC=81lvarez?= Date: Wed, 27 Mar 2024 18:10:05 +0100 Subject: [PATCH] build watch app --- .../Micro vMac.xcodeproj/project.pbxproj | 202 +++++++++++++++++ .../InterfaceController.m | 41 +++- Mini vMac.xcodeproj/project.pbxproj | 214 ++++++++++++++++++ Mini vMac/MacPlus4M-WatchOS/CNFUDALL.h | 44 ++++ Mini vMac/MacPlus4M-WatchOS/CNFUDOSG.h | 33 +++ Mini vMac/MacPlus4M-WatchOS/CNFUDPIC.h | 175 ++++++++++++++ 6 files changed, 699 insertions(+), 10 deletions(-) create mode 100644 Mini vMac/MacPlus4M-WatchOS/CNFUDALL.h create mode 100644 Mini vMac/MacPlus4M-WatchOS/CNFUDOSG.h create mode 100644 Mini vMac/MacPlus4M-WatchOS/CNFUDPIC.h diff --git a/Micro vMac/Micro vMac.xcodeproj/project.pbxproj b/Micro vMac/Micro vMac.xcodeproj/project.pbxproj index 10c7959..49bd147 100644 --- a/Micro vMac/Micro vMac.xcodeproj/project.pbxproj +++ b/Micro vMac/Micro vMac.xcodeproj/project.pbxproj @@ -8,6 +8,9 @@ /* Begin PBXBuildFile section */ 2887384A2190D22D00E24DC3 /* Interface.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 288738492190D22D00E24DC3 /* Interface.storyboard */; }; + 2896735E2BB20BEB0014D8E7 /* MacPlus4M_WatchOS.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 2896734C2BB209E90014D8E7 /* MacPlus4M_WatchOS.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 289673622BB21E700014D8E7 /* vMac.rom in Resources */ = {isa = PBXBuildFile; fileRef = 289673612BB21E700014D8E7 /* vMac.rom */; }; + 289673632BB21F3E0014D8E7 /* MacPlus4M_WatchOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2896734C2BB209E90014D8E7 /* MacPlus4M_WatchOS.framework */; }; 28E020EC2173E0EC00C556D6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 28E020EB2173E0EC00C556D6 /* Assets.xcassets */; }; 28E020F32173E0EC00C556D6 /* Mini vMac WatchKit Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 28E020F22173E0EC00C556D6 /* Mini vMac WatchKit Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 28E020F92173E0EC00C556D6 /* InterfaceController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28E020F82173E0EC00C556D6 /* InterfaceController.m */; }; @@ -16,6 +19,83 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ + 289673232BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28F676BD1CD15E0B00FC6FA6; + remoteInfo = "Mini vMac"; + }; + 289673252BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28F6B48E1CF07DDD002D76D0; + remoteInfo = libhfs; + }; + 289673272BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28F6B4A81CF07EC9002D76D0; + remoteInfo = libmfs; + }; + 289673292BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28F6B4B61CF07F32002D76D0; + remoteInfo = libres; + }; + 2896732B2BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 283422CA1CF8EF8C0088B634; + remoteInfo = MacPlus4M; + }; + 2896732D2BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 283423961CF9C4CB0088B634; + remoteInfo = MacII; + }; + 2896732F2BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 289710D41CFB11BF0089D463; + remoteInfo = Mac128K; + }; + 289673312BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28BDBEB71D230EEB0072ED5B; + remoteInfo = "MacII-640x480"; + }; + 289673332BB2087D0014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 28C67BEE2AC49E46000C7540; + remoteInfo = "MacII-512x384"; + }; + 2896734B2BB209E90014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 289673422BB209DB0014D8E7; + remoteInfo = "MacPlus4M-WatchOS"; + }; + 2896735F2BB20BF20014D8E7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = 289673412BB209DB0014D8E7; + remoteInfo = "MacPlus4M-WatchOS"; + }; 28E020F42173E0EC00C556D6 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 28E020C52173E0EB00C556D6 /* Project object */; @@ -26,6 +106,17 @@ /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ + 289673372BB208BA0014D8E7 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 2896735E2BB20BEB0014D8E7 /* MacPlus4M_WatchOS.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; 28E021052173E0ED00C556D6 /* Embed App Extensions */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -41,6 +132,8 @@ /* Begin PBXFileReference section */ 288738492190D22D00E24DC3 /* Interface.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Interface.storyboard; sourceTree = ""; }; + 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Mini vMac.xcodeproj"; path = "../Mini vMac.xcodeproj"; sourceTree = ""; }; + 289673612BB21E700014D8E7 /* vMac.rom */ = {isa = PBXFileReference; lastKnownFileType = file; path = vMac.rom; sourceTree = SOURCE_ROOT; }; 28BF818F25338E0C007341A3 /* SwiftUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftUI.framework; path = System/Library/Frameworks/SwiftUI.framework; sourceTree = SDKROOT; }; 28E020E32173E0EC00C556D6 /* Mini vMac WatchKit App.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Mini vMac WatchKit App.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 28E020EB2173E0EC00C556D6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -59,6 +152,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 289673632BB21F3E0014D8E7 /* MacPlus4M_WatchOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -72,9 +166,27 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 289673182BB2087C0014D8E7 /* Products */ = { + isa = PBXGroup; + children = ( + 289673242BB2087D0014D8E7 /* Mini vMac.app */, + 289673262BB2087D0014D8E7 /* liblibhfs.a */, + 289673282BB2087D0014D8E7 /* liblibmfs.a */, + 2896732A2BB2087D0014D8E7 /* liblibres.a */, + 2896732C2BB2087D0014D8E7 /* MacPlus4M.framework */, + 2896732E2BB2087D0014D8E7 /* MacII.framework */, + 289673302BB2087D0014D8E7 /* Mac128K.framework */, + 289673322BB2087D0014D8E7 /* MacII-640x480.framework */, + 289673342BB2087D0014D8E7 /* MacII-512x384.framework */, + 2896734C2BB209E90014D8E7 /* MacPlus4M_WatchOS.framework */, + ); + name = Products; + sourceTree = ""; + }; 28E020C42173E0EB00C556D6 = { isa = PBXGroup; children = ( + 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */, 28E020E72173E0EC00C556D6 /* Mini vMac WatchKit App */, 28E020F62173E0EC00C556D6 /* Mini vMac WatchKit Extension */, 28E020CE2173E0EB00C556D6 /* Products */, @@ -104,6 +216,7 @@ 28E020F62173E0EC00C556D6 /* Mini vMac WatchKit Extension */ = { isa = PBXGroup; children = ( + 289673612BB21E700014D8E7 /* vMac.rom */, 28E020F72173E0EC00C556D6 /* InterfaceController.h */, 28E020F82173E0EC00C556D6 /* InterfaceController.m */, 28E020FA2173E0EC00C556D6 /* ExtensionDelegate.h */, @@ -150,10 +263,12 @@ 28E020EE2173E0EC00C556D6 /* Sources */, 28E020EF2173E0EC00C556D6 /* Frameworks */, 28E020F02173E0EC00C556D6 /* Resources */, + 289673372BB208BA0014D8E7 /* Embed Frameworks */, ); buildRules = ( ); dependencies = ( + 289673602BB20BF20014D8E7 /* PBXTargetDependency */, ); name = "Mini vMac WatchKit Extension"; productName = "Mini vMac WatchKit Extension"; @@ -189,6 +304,12 @@ mainGroup = 28E020C42173E0EB00C556D6; productRefGroup = 28E020CE2173E0EB00C556D6 /* Products */; projectDirPath = ""; + projectReferences = ( + { + ProductGroup = 289673182BB2087C0014D8E7 /* Products */; + ProjectRef = 289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */; + }, + ); projectRoot = ""; targets = ( 28E020E22173E0EC00C556D6 /* Mini vMac WatchKit App */, @@ -197,6 +318,79 @@ }; /* End PBXProject section */ +/* Begin PBXReferenceProxy section */ + 289673242BB2087D0014D8E7 /* Mini vMac.app */ = { + isa = PBXReferenceProxy; + fileType = wrapper.application; + path = "Mini vMac.app"; + remoteRef = 289673232BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 289673262BB2087D0014D8E7 /* liblibhfs.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = liblibhfs.a; + remoteRef = 289673252BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 289673282BB2087D0014D8E7 /* liblibmfs.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = liblibmfs.a; + remoteRef = 289673272BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2896732A2BB2087D0014D8E7 /* liblibres.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = liblibres.a; + remoteRef = 289673292BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2896732C2BB2087D0014D8E7 /* MacPlus4M.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = MacPlus4M.framework; + remoteRef = 2896732B2BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2896732E2BB2087D0014D8E7 /* MacII.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = MacII.framework; + remoteRef = 2896732D2BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 289673302BB2087D0014D8E7 /* Mac128K.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = Mac128K.framework; + remoteRef = 2896732F2BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 289673322BB2087D0014D8E7 /* MacII-640x480.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = "MacII-640x480.framework"; + remoteRef = 289673312BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 289673342BB2087D0014D8E7 /* MacII-512x384.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = "MacII-512x384.framework"; + remoteRef = 289673332BB2087D0014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 2896734C2BB209E90014D8E7 /* MacPlus4M_WatchOS.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = MacPlus4M_WatchOS.framework; + remoteRef = 2896734B2BB209E90014D8E7 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + /* Begin PBXResourcesBuildPhase section */ 28E020E12173E0EC00C556D6 /* Resources */ = { isa = PBXResourcesBuildPhase; @@ -212,6 +406,7 @@ buildActionMask = 2147483647; files = ( 28E020FE2173E0ED00C556D6 /* Assets.xcassets in Resources */, + 289673622BB21E700014D8E7 /* vMac.rom in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -230,6 +425,11 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ + 289673602BB20BF20014D8E7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = "MacPlus4M-WatchOS"; + targetProxy = 2896735F2BB20BF20014D8E7 /* PBXContainerItemProxy */; + }; 28E020F52173E0EC00C556D6 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 28E020F12173E0EC00C556D6 /* Mini vMac WatchKit Extension */; @@ -371,6 +571,7 @@ SDKROOT = watchos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; + USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../Mini vMac\""; WATCHOS_DEPLOYMENT_TARGET = 5.0; }; name = Debug; @@ -394,6 +595,7 @@ SDKROOT = watchos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = 4; + USER_HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../Mini vMac\""; WATCHOS_DEPLOYMENT_TARGET = 5.0; }; name = Release; diff --git a/Micro vMac/Mini vMac WatchKit Extension/InterfaceController.m b/Micro vMac/Mini vMac WatchKit Extension/InterfaceController.m index 052b4dd..6f7f578 100644 --- a/Micro vMac/Mini vMac WatchKit Extension/InterfaceController.m +++ b/Micro vMac/Mini vMac WatchKit Extension/InterfaceController.m @@ -6,11 +6,14 @@ // Copyright © 2018 namedfork. All rights reserved. // -#import "InterfaceController.h" - +@import Foundation; +@import UIKit; @import ObjectiveC.runtime; @import WatchConnectivity; +#import "InterfaceController.h" +#import "EmulatorProtocol.h" + @interface NSObject (fs_override) +(id)sharedApplication; -(id)keyWindow; @@ -25,6 +28,10 @@ -(NSString*)timeText; -(id)sharedPUICApplication; -(void)_setStatusBarTimeHidden:(BOOL)hidden animated:(BOOL)animated completion:(void (^)(void))completion; +-(void)setAffineTransform:(CGAffineTransform)transform; +-(void)setContentsScale:(CGFloat)value; +-(void)setContentsGravity:(NSString*)gravity; +-(void)setMinificationFilter:(NSString*)filter; @end @interface InterfaceController () @@ -33,6 +40,7 @@ @implementation InterfaceController { + NSObject *emulator; } + (void)load { @@ -55,7 +63,7 @@ [[[fullScreenView timeLabel] layer] setOpacity:0]; } - /* Hack to make the digital time overlay disappear (on watchOS 7) */ + /* Hack to make the digital time overlay disappear (on watchOS 7 and 8) */ Class PUICApplication = NSClassFromString(@"PUICApplication"); if ([PUICApplication instancesRespondToSelector:@selector(_setStatusBarTimeHidden:animated:completion:)]) { [[PUICApplication sharedApplication] _setStatusBarTimeHidden:YES animated:NO completion:nil]; @@ -86,26 +94,39 @@ - (void)didAppear { [self hideTimeLabel]; - /*if (runtime == nil) { - [self loadWatchface]; - }*/ + if (emulator == nil) { + [self loadAndStartEmulator]; + } } - - (void)willActivate { if ([WKExtension sharedExtension].applicationState == WKApplicationStateActive) { - //[runtime resume]; + emulator.running = YES; } } - (void)didDeactivate { // This method is called when watch view controller is no longer visible [super didDeactivate]; - //[runtime pause]; + emulator.running = NO; } - (void)sessionReachabilityDidChange:(WCSession *)session { - uint32_t connected = session.activationState == WCSessionActivationStateActivated && session.reachable; + //uint32_t connected = session.activationState == WCSessionActivationStateActivated && session.reachable; } +- (void)loadAndStartEmulator { + Class emulatorClass = NSClassFromString(@"MacPlus4MEmulator"); + emulator = [emulatorClass new]; + emulator.rootViewController = nil; + emulator.showAlert = ^(NSString *title, NSString *message) { + NSLog(@"Alert: %@ - %@", title, message); + }; + emulator.dataPath = [NSBundle mainBundle].resourcePath; + emulator.screenLayer = [[self fullScreenView] layer]; + [emulator.screenLayer setContentsGravity:@"CAGravityResizeAspectFill"]; + [emulator.screenLayer setAffineTransform:CGAffineTransformScale(CGAffineTransformMakeRotation(-M_PI_2), 0.375, 0.375)]; + [emulator.screenLayer setMinificationFilter:@"CAFilterTrilinear"]; + [emulator performSelector:@selector(run) withObject:nil afterDelay:0.1]; +} @end diff --git a/Mini vMac.xcodeproj/project.pbxproj b/Mini vMac.xcodeproj/project.pbxproj index afa50e7..ec39d9c 100644 --- a/Mini vMac.xcodeproj/project.pbxproj +++ b/Mini vMac.xcodeproj/project.pbxproj @@ -20,6 +20,21 @@ 283423F11CFA329C0088B634 /* Icon@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = 283423EE1CFA329C0088B634 /* Icon@3x.png */; }; 28848B621CDE97D600B86C45 /* InsertDiskViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28848B611CDE97D600B86C45 /* InsertDiskViewController.m */; }; 28848B651CDE97E900B86C45 /* SettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 28848B641CDE97E900B86C45 /* SettingsViewController.m */; }; + 2896734F2BB20A0E0014D8E7 /* SCCEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D7251D0F13007C273F /* SCCEMDEV.c */; }; + 289673502BB20A0E0014D8E7 /* SCRNEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D4251D0F13007C273F /* SCRNEMDV.c */; }; + 289673512BB20A0E0014D8E7 /* MINEM68K.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D3251D0F13007C273F /* MINEM68K.c */; }; + 289673522BB20A0E0014D8E7 /* MOUSEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7CC251D0F12007C273F /* MOUSEMDV.c */; }; + 289673532BB20A0E0014D8E7 /* IWMEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D5251D0F13007C273F /* IWMEMDEV.c */; }; + 289673542BB20A0E0014D8E7 /* PROGMAIN.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D0251D0F12007C273F /* PROGMAIN.c */; }; + 289673552BB20A0E0014D8E7 /* RTCEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7CD251D0F12007C273F /* RTCEMDEV.c */; }; + 289673562BB20A0E0014D8E7 /* GLOBGLUE.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7CE251D0F12007C273F /* GLOBGLUE.c */; }; + 289673572BB20A0E0014D8E7 /* KBRDEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7DB251D0F13007C273F /* KBRDEMDV.c */; }; + 289673582BB20A0E0014D8E7 /* SCSIEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D9251D0F13007C273F /* SCSIEMDV.c */; }; + 289673592BB20A0E0014D8E7 /* VIAEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7DC251D0F13007C273F /* VIAEMDEV.c */; }; + 2896735A2BB20A0E0014D8E7 /* M68KITAB.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7CF251D0F12007C273F /* M68KITAB.c */; }; + 2896735B2BB20A0E0014D8E7 /* SONYEMDV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7D1251D0F12007C273F /* SONYEMDV.c */; }; + 2896735C2BB20A0E0014D8E7 /* ROMEMDEV.c in Sources */ = {isa = PBXBuildFile; fileRef = 28E3B7DA251D0F13007C273F /* ROMEMDEV.c */; }; + 2896735D2BB20A190014D8E7 /* MYOSGLUE.m in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8ECB1CD4CDC500FE25A8 /* MYOSGLUE.m */; }; 289710C31CFB11BF0089D463 /* MYOSGLUE.m in Sources */ = {isa = PBXBuildFile; fileRef = 28CE8ECB1CD4CDC500FE25A8 /* MYOSGLUE.m */; }; 289710DC1CFB12240089D463 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 289710D81CFB121F0089D463 /* Icon.png */; }; 289710DD1CFB12240089D463 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 289710D91CFB121F0089D463 /* Icon@2x.png */; }; @@ -263,6 +278,10 @@ 28848B611CDE97D600B86C45 /* InsertDiskViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InsertDiskViewController.m; sourceTree = ""; }; 28848B631CDE97E900B86C45 /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = ""; }; 28848B641CDE97E900B86C45 /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = ""; }; + 289673422BB209DB0014D8E7 /* MacPlus4M_WatchOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = MacPlus4M_WatchOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 289673492BB209E90014D8E7 /* CNFUDOSG.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDOSG.h; sourceTree = ""; }; + 2896734D2BB209E90014D8E7 /* CNFUDPIC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDPIC.h; sourceTree = ""; }; + 2896734E2BB209E90014D8E7 /* CNFUDALL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDALL.h; sourceTree = ""; }; 289710D41CFB11BF0089D463 /* Mac128K.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Mac128K.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 289710D61CFB121F0089D463 /* CNFUDOSG.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDOSG.h; sourceTree = ""; }; 289710D71CFB121F0089D463 /* CNFUDALL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDALL.h; sourceTree = ""; }; @@ -397,6 +416,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2896733F2BB209DB0014D8E7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 289710CB1CFB11BF0089D463 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -468,6 +494,7 @@ 283422EF1CF8F33A0088B634 /* Emulator Bundles */ = { isa = PBXGroup; children = ( + 289673432BB209DB0014D8E7 /* MacPlus4M-WatchOS */, 283422F01CF8F3530088B634 /* Shared */, 283422CB1CF8EF8C0088B634 /* MacPlus4M */, 283423981CF9C5380088B634 /* MacII */, @@ -507,6 +534,16 @@ path = MacII; sourceTree = ""; }; + 289673432BB209DB0014D8E7 /* MacPlus4M-WatchOS */ = { + isa = PBXGroup; + children = ( + 2896734E2BB209E90014D8E7 /* CNFUDALL.h */, + 289673492BB209E90014D8E7 /* CNFUDOSG.h */, + 2896734D2BB209E90014D8E7 /* CNFUDPIC.h */, + ); + path = "MacPlus4M-WatchOS"; + sourceTree = ""; + }; 289710D51CFB11D90089D463 /* Mac128K */ = { isa = PBXGroup; children = ( @@ -603,6 +640,7 @@ 289710D41CFB11BF0089D463 /* Mac128K.framework */, 28BDBEB71D230EEB0072ED5B /* MacII-640x480.framework */, 28C67BEE2AC49E46000C7540 /* MacII-512x384.framework */, + 289673422BB209DB0014D8E7 /* MacPlus4M_WatchOS.framework */, ); name = Products; sourceTree = ""; @@ -746,6 +784,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2896733D2BB209DB0014D8E7 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 289710CC1CFB11BF0089D463 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -808,6 +853,24 @@ productReference = 283423961CF9C4CB0088B634 /* MacII.framework */; productType = "com.apple.product-type.framework"; }; + 289673412BB209DB0014D8E7 /* MacPlus4M-WatchOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 289673462BB209DB0014D8E7 /* Build configuration list for PBXNativeTarget "MacPlus4M-WatchOS" */; + buildPhases = ( + 2896733D2BB209DB0014D8E7 /* Headers */, + 2896733E2BB209DB0014D8E7 /* Sources */, + 2896733F2BB209DB0014D8E7 /* Frameworks */, + 289673402BB209DB0014D8E7 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "MacPlus4M-WatchOS"; + productName = "MacPlus4M-WatchOS"; + productReference = 289673422BB209DB0014D8E7 /* MacPlus4M_WatchOS.framework */; + productType = "com.apple.product-type.framework"; + }; 289710B81CFB11BF0089D463 /* Mac128K */ = { isa = PBXNativeTarget; buildConfigurationList = 289710D11CFB11BF0089D463 /* Build configuration list for PBXNativeTarget "Mac128K" */; @@ -957,6 +1020,9 @@ 2834237D1CF9C4CB0088B634 = { DevelopmentTeam = UJXNDZ5TNU; }; + 289673412BB209DB0014D8E7 = { + CreatedOnToolsVersion = 15.3; + }; 289710B81CFB11BF0089D463 = { DevelopmentTeam = UJXNDZ5TNU; }; @@ -1001,6 +1067,7 @@ 289710B81CFB11BF0089D463 /* Mac128K */, 28BDBE9A1D230EEB0072ED5B /* MacII-640x480 */, 28C67BD02AC49E46000C7540 /* MacII-512x384 */, + 289673412BB209DB0014D8E7 /* MacPlus4M-WatchOS */, ); }; /* End PBXProject section */ @@ -1026,6 +1093,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 289673402BB209DB0014D8E7 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 289710CD1CFB11BF0089D463 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -1227,6 +1301,28 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 2896733E2BB209DB0014D8E7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2896734F2BB20A0E0014D8E7 /* SCCEMDEV.c in Sources */, + 289673502BB20A0E0014D8E7 /* SCRNEMDV.c in Sources */, + 2896735D2BB20A190014D8E7 /* MYOSGLUE.m in Sources */, + 289673512BB20A0E0014D8E7 /* MINEM68K.c in Sources */, + 289673522BB20A0E0014D8E7 /* MOUSEMDV.c in Sources */, + 289673532BB20A0E0014D8E7 /* IWMEMDEV.c in Sources */, + 289673542BB20A0E0014D8E7 /* PROGMAIN.c in Sources */, + 289673552BB20A0E0014D8E7 /* RTCEMDEV.c in Sources */, + 289673562BB20A0E0014D8E7 /* GLOBGLUE.c in Sources */, + 289673572BB20A0E0014D8E7 /* KBRDEMDV.c in Sources */, + 289673582BB20A0E0014D8E7 /* SCSIEMDV.c in Sources */, + 289673592BB20A0E0014D8E7 /* VIAEMDEV.c in Sources */, + 2896735A2BB20A0E0014D8E7 /* M68KITAB.c in Sources */, + 2896735B2BB20A0E0014D8E7 /* SONYEMDV.c in Sources */, + 2896735C2BB20A0E0014D8E7 /* ROMEMDEV.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 289710B91CFB11BF0089D463 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -1448,6 +1544,7 @@ USE_HEADERMAP = NO; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 8.5; }; name = Debug; }; @@ -1488,6 +1585,7 @@ USE_HEADERMAP = NO; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 8.5; }; name = Release; }; @@ -1571,6 +1669,113 @@ }; name = Release; }; + 289673472BB209DB0014D8E7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = UJXNDZ5TNU; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 namedfork. All rights reserved."; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.minivmac.MacPlus4M-WatchOS"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "watchsimulator watchos"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = 4; + USER_HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/minivmac/src/\"", + "\"$(SRCROOT)/Mini vMac/\"", + "\"$(SRCROOT)/Mini vMac/MacPlus4M-WatchOS\"", + ); + USE_HEADERMAP = NO; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 8.5; + }; + name = Debug; + }; + 289673482BB209DB0014D8E7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = YES; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = UJXNDZ5TNU; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_MODULE_VERIFIER = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2024 namedfork. All rights reserved."; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MODULE_VERIFIER_SUPPORTED_LANGUAGES = "objective-c objective-c++"; + MODULE_VERIFIER_SUPPORTED_LANGUAGE_STANDARDS = "gnu17 gnu++20"; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "net.namedfork.minivmac.MacPlus4M-WatchOS"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = watchos; + SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "watchsimulator watchos"; + SUPPORTS_MACCATALYST = NO; + SWIFT_EMIT_LOC_STRINGS = YES; + TARGETED_DEVICE_FAMILY = 4; + USER_HEADER_SEARCH_PATHS = ( + "\"$(SRCROOT)/minivmac/src/\"", + "\"$(SRCROOT)/Mini vMac/\"", + "\"$(SRCROOT)/Mini vMac/MacPlus4M-WatchOS\"", + ); + USE_HEADERMAP = NO; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 8.5; + }; + name = Release; + }; 289710D21CFB11BF0089D463 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -2089,6 +2294,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 289673462BB209DB0014D8E7 /* Build configuration list for PBXNativeTarget "MacPlus4M-WatchOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 289673472BB209DB0014D8E7 /* Debug */, + 289673482BB209DB0014D8E7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 289710D11CFB11BF0089D463 /* Build configuration list for PBXNativeTarget "Mac128K" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Mini vMac/MacPlus4M-WatchOS/CNFUDALL.h b/Mini vMac/MacPlus4M-WatchOS/CNFUDALL.h new file mode 100644 index 0000000..f37fbee --- /dev/null +++ b/Mini vMac/MacPlus4M-WatchOS/CNFUDALL.h @@ -0,0 +1,44 @@ +/* + see comment in OSGCOMUD.h + + This file is automatically generated by the build system, + which tries to know what options are valid in what + combinations. Avoid changing this file manually unless + you know what you're doing. +*/ + +#define MySoundEnabled 0 + +#define MySoundRecenterSilence 0 +#define kLn2SoundSampSz 3 + +#define dbglog_HAVE 0 + +#define WantAbnormalReports 0 + +#define NumDrives 6 +#define NonDiskProtect 0 +#define IncludeSonyRawMode 1 +#define IncludeSonyGetName 1 +#define IncludeSonyNew 0 +#define IncludeSonyNameNew 0 + +#define vMacScreenHeight 342 +#define vMacScreenWidth 512 +#define vMacScreenDepth 0 + +#define kROM_Size 0x00020000 + +#define IncludePbufs 1 +#define NumPbufs 4 + +#define EnableMouseMotion 1 + +#define IncludeHostTextClipExchange 0 +#define EnableAutoSlow 1 +#define EmLocalTalk 1 +#define LT_MayHaveEcho 0 +#define AutoLocation 1 +#define AutoTimeZone 1 + +#define MNVMBundleClassName MacPlus4MEmulator diff --git a/Mini vMac/MacPlus4M-WatchOS/CNFUDOSG.h b/Mini vMac/MacPlus4M-WatchOS/CNFUDOSG.h new file mode 100644 index 0000000..29b39e3 --- /dev/null +++ b/Mini vMac/MacPlus4M-WatchOS/CNFUDOSG.h @@ -0,0 +1,33 @@ +/* + see comment in OSGCOMUD.h + + This file is automatically generated by the build system, + which tries to know what options are valid in what + combinations. Avoid changing this file manually unless + you know what you're doing. +*/ + +#define RomFileName "vMac.ROM" +#define kCheckSumRom_Size 0x00020000 +#define kRomCheckSum1 0x4D1EEEE1 +#define kRomCheckSum2 0x4D1EEAE1 +#define kRomCheckSum3 0x4D1F8172 +#define RomStartCheckSum 1 +#define SaveDialogEnable 1 +#define EnableAltKeysMode 0 +#define VarFullScreen 1 +#define WantInitFullScreen 0 +#define MayFullScreen 1 +#define MayNotFullScreen 1 +#define WantInitMagnify 0 +#define EnableMagnify 1 +#define MyWindowScale 2 +#define WantInitRunInBackground 0 +#define WantInitNotAutoSlow 0 +#define WantInitSpeedValue 3 +#define WantEnblCtrlInt 1 +#define WantEnblCtrlRst 1 +#define WantEnblCtrlKtg 1 +#define UseControlKeys 1 +#define UseActvCode 0 +#define EnableDemoMsg 0 diff --git a/Mini vMac/MacPlus4M-WatchOS/CNFUDPIC.h b/Mini vMac/MacPlus4M-WatchOS/CNFUDPIC.h new file mode 100644 index 0000000..d3c178a --- /dev/null +++ b/Mini vMac/MacPlus4M-WatchOS/CNFUDPIC.h @@ -0,0 +1,175 @@ +/* + see comment in PICOMMON.h + + This file is automatically generated by the build system, + which tries to know what options are valid in what + combinations. Avoid changing this file manually unless + you know what you're doing. +*/ + +#define EmClassicKbrd 1 +#define EmADB 0 +#define EmRTC 1 +#define EmPMU 0 +#define EmVIA1 1 +#define EmVIA2 0 +#define Use68020 0 +#define EmFPU 0 +#define EmMMU 0 +#define EmClassicSnd 0 +#define EmASC 0 + +#define CurEmMd kEmMd_Plus + +#define kMyClockMult 1 + +#define WantCycByPriOp 1 +#define WantCloserCyc 0 + +#define kAutoSlowSubTicks 16384 +#define kAutoSlowTime 34 + +#define kRAMa_Size 0x00200000 +#define kRAMb_Size 0x00200000 + +#define IncludeVidMem 0 + +#define EmVidCard 0 + +#define MaxATTListN 16 +#define IncludeExtnPbufs 1 +#define IncludeExtnHostTextClipExchange 0 + +#define Sony_SupportDC42 1 +#define Sony_SupportTags 0 +#define Sony_WantChecksumsUpdated 0 +#define Sony_VerifyChecksums 0 +#define CaretBlinkTime 0x03 +#define SpeakerVol 0x07 +#define DoubleClickTime 0x05 +#define MenuBlink 0x03 +#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 + +#define WantDisasm 0 +#define ExtraAbnormalReports 0