build watch app

This commit is contained in:
Jesús A. Álvarez 2024-03-27 18:10:05 +01:00
parent 0d314cfe90
commit 8d7ac82f83
6 changed files with 699 additions and 10 deletions

View File

@ -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 = "<group>"; };
289673172BB2087C0014D8E7 /* Mini vMac.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "Mini vMac.xcodeproj"; path = "../Mini vMac.xcodeproj"; sourceTree = "<group>"; };
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 = "<group>"; };
@ -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 = "<group>";
};
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;

View File

@ -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> *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

View File

@ -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 = "<group>"; };
28848B631CDE97E900B86C45 /* SettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsViewController.h; sourceTree = "<group>"; };
28848B641CDE97E900B86C45 /* SettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SettingsViewController.m; sourceTree = "<group>"; };
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 = "<group>"; };
2896734D2BB209E90014D8E7 /* CNFUDPIC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDPIC.h; sourceTree = "<group>"; };
2896734E2BB209E90014D8E7 /* CNFUDALL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDALL.h; sourceTree = "<group>"; };
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 = "<group>"; };
289710D71CFB121F0089D463 /* CNFUDALL.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNFUDALL.h; sourceTree = "<group>"; };
@ -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 = "<group>";
};
289673432BB209DB0014D8E7 /* MacPlus4M-WatchOS */ = {
isa = PBXGroup;
children = (
2896734E2BB209E90014D8E7 /* CNFUDALL.h */,
289673492BB209E90014D8E7 /* CNFUDOSG.h */,
2896734D2BB209E90014D8E7 /* CNFUDPIC.h */,
);
path = "MacPlus4M-WatchOS";
sourceTree = "<group>";
};
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 = "<group>";
@ -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 = (

View File

@ -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

View File

@ -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

View File

@ -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