mirror of
https://github.com/ksherlock/ample.git
synced 2026-10-26 04:02:14 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4a44e2230f | ||
|
|
90ab94e02a | ||
|
|
e1c8e6eeef | ||
|
|
2b9b11296f | ||
|
|
a2134534cc | ||
|
|
a0180b56cc | ||
|
|
55011246f6 | ||
|
|
c7197d8d6e | ||
|
|
47477eb2d3 | ||
|
|
d471fd218b | ||
|
|
b0be01dd70 | ||
|
|
0767630f2a | ||
|
|
94517dc396 | ||
|
|
2efdcc268b | ||
|
|
c0191dbafd | ||
|
|
bec3fb84f8 | ||
|
|
1e320e6347 | ||
|
|
c360f76297 | ||
|
|
363c4029f6 | ||
|
|
b12b067a28 | ||
|
|
d88bc7e932 | ||
|
|
1d81eebb31 | ||
|
|
61eded7a6d | ||
|
|
1e6b987318 | ||
|
|
a04f24108c | ||
|
|
c90d1f2acb | ||
|
|
12987fe516 | ||
|
|
e87dd48d97 | ||
|
|
a1a37934aa | ||
|
|
42d208cbad | ||
|
|
757609c9b8 | ||
|
|
5cb275a273 | ||
|
|
8c96395a1d | ||
|
|
0a54e39cdf | ||
|
|
98572b3391 | ||
|
|
e0a09e1aa8 | ||
|
|
d498647973 | ||
|
|
e3514812af | ||
|
|
d5543b809e | ||
|
|
78c169b98a | ||
|
|
d2edd84232 | ||
|
|
1b6f327e1d | ||
|
|
6c34645245 | ||
|
|
9cf3e85d59 | ||
|
|
6a979a149b | ||
|
|
60cb69df42 | ||
|
|
00d66f0657 | ||
|
|
d3610baf3f | ||
|
|
17edca4ee0 | ||
|
|
b307f1536c | ||
|
|
4f641b27ab | ||
|
|
40cb59e894 | ||
|
|
c77fc55f91 | ||
|
|
7bb5776f5e | ||
|
|
9c4d8ea2d1 | ||
|
|
39ccaba7b6 | ||
|
|
5c60627ba4 | ||
|
|
1625cbcc34 | ||
|
|
2a314fe9ff | ||
|
|
353f2926c2 | ||
|
|
659a081b74 | ||
|
|
6e9b83eb55 | ||
|
|
d46bcb556c | ||
|
|
1061e7b239 | ||
|
|
c6ffdfc0d9 | ||
|
|
123e4b58c0 | ||
|
|
c3263c1fb5 | ||
|
|
42f7dba174 | ||
|
|
0168dca870 | ||
|
|
e331f29062 | ||
|
|
5f57567faa | ||
|
|
1047c715c9 | ||
|
|
adcd6cd7f0 | ||
|
|
58a874d689 | ||
|
|
e9254c4e3d | ||
|
|
64d2f52e6b | ||
|
|
c4b203aaeb | ||
|
|
14e0eeb99e | ||
|
|
004f975bf6 | ||
|
|
eb20f7e811 | ||
|
|
b58bb1f6b6 | ||
|
|
60586a9e1b | ||
|
|
fb7b2f3973 | ||
|
|
4a6ba96803 | ||
|
|
73ab4e0e41 | ||
|
|
828c938e52 | ||
|
|
d1a2dcba21 | ||
|
|
5de27856ed | ||
|
|
8da2ff4a20 | ||
|
|
e89536c932 | ||
|
|
d2b592c7e5 | ||
|
|
0afa433151 | ||
|
|
c2323ac998 | ||
|
|
45fe32893f | ||
|
|
308b15277c | ||
|
|
bdd9df44ed | ||
|
|
c58ff589dd | ||
|
|
e3985856f3 | ||
|
|
a28c42a2b6 | ||
|
|
78bcc88694 | ||
|
|
7e1e2fb8c5 | ||
|
|
7e64d6720d | ||
|
|
ef8a4412f8 | ||
|
|
68429262c0 | ||
|
|
c2baf07256 | ||
|
|
cac8c1c054 | ||
|
|
0718aa5944 | ||
|
|
8b37b5e840 | ||
|
|
565e1109ff | ||
|
|
b7149a0b0d | ||
|
|
8283a3beec | ||
|
|
17945e68ba | ||
|
|
49e3e397d2 | ||
|
|
5efa2b2cbf | ||
|
|
c536b8edb5 | ||
|
|
a6747e4f57 | ||
|
|
7dbaf4e12d | ||
|
|
24e3b01803 | ||
|
|
d6a3e1e347 | ||
|
|
0244fbcc0b | ||
|
|
ee1da060a3 | ||
|
|
6ce2fbc2d8 | ||
|
|
56b34a4099 | ||
|
|
9f7c49e3e0 | ||
|
|
70fc811b0d | ||
|
|
377e6bc04e | ||
|
|
6ef3911da7 | ||
|
|
9b3223478c | ||
|
|
2198467def | ||
|
|
63a60ed8b7 | ||
|
|
9005cfe0ec | ||
|
|
2e62b33fb1 | ||
|
|
e04d441cc5 | ||
|
|
f116c9ff1f | ||
|
|
92cf747d65 | ||
|
|
743fa57a44 | ||
|
|
970cbd6cdc | ||
|
|
3ce9df6650 | ||
|
|
d84c5d7be3 | ||
|
|
79617329e8 | ||
|
|
dc67db2ce6 | ||
|
|
9031b481ce | ||
|
|
f38ab3288d | ||
|
|
0aea4006cc | ||
|
|
06233137a9 | ||
|
|
8bc7e26279 | ||
|
|
aea14d8dd4 | ||
|
|
23946962ad | ||
|
|
d0987932a8 | ||
|
|
c03f888032 | ||
|
|
2b127ac5a8 | ||
|
|
c6edfe91f2 | ||
|
|
11ba25588b | ||
|
|
695ed00552 | ||
|
|
c8e3c95240 | ||
|
|
4acd3d51a7 | ||
|
|
93cb6c5276 | ||
|
|
52e9f00b92 | ||
|
|
453e2bd497 | ||
|
|
c722b28ef3 | ||
|
|
7a077e5ec8 | ||
|
|
436694a0b6 | ||
|
|
01e36939aa | ||
|
|
20c767021c | ||
|
|
b64ca73346 | ||
|
|
62767971ee | ||
|
|
6b2c4c408a | ||
|
|
bbcc41cc10 | ||
|
|
f651ca6b26 | ||
|
|
16036d9df0 | ||
|
|
41653fcae1 | ||
|
|
87b4cc9494 | ||
|
|
9b349e699f | ||
|
|
03c8306718 | ||
|
|
41ad1f0d7a | ||
|
|
d5ed5f74a2 | ||
|
|
2409ad55a1 | ||
|
|
601e56ccaa | ||
|
|
d5d90ba6be | ||
|
|
4a0caa2e78 | ||
|
|
23a05d5414 | ||
|
|
4ffd8d1f44 | ||
|
|
f52470eb2e | ||
|
|
65aedba94b | ||
|
|
8707b4a246 | ||
|
|
5a0fdd5a7e | ||
|
|
4e05ff7e8c | ||
|
|
781d8ada60 | ||
|
|
d258fd2a48 | ||
|
|
2b2f3a2fd8 | ||
|
|
9bb0cc468a | ||
|
|
79c3eba93e | ||
|
|
e09a151c91 |
No files matched your search
@@ -8,8 +8,12 @@ jobs:
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: build
|
||||
run: xcodebuild -project "Ample.xcodeproj" -target "Ample Lite" | xcpretty
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: Ample Lite
|
||||
path: build/Release/
|
||||
@@ -1,9 +1,11 @@
|
||||
dist
|
||||
embedded/mame64
|
||||
embedded/SDL2.framework
|
||||
embedded/SDL3.framework
|
||||
embedded/Sparkle.framework
|
||||
embedded/Sparkle-*
|
||||
embedded/SDL2-*
|
||||
embedded/SDL3-*
|
||||
build
|
||||
embedded/mame-data.tgz
|
||||
__pycache__
|
||||
+1545
-371
File diff suppressed because it is too large.
Load diff
@@ -33,6 +33,7 @@ extern NSString *kMamePath;
|
||||
extern NSString *kMameWorkingDirectory;
|
||||
extern NSString *kAutoCloseLogWindow;
|
||||
extern NSString *kMameComponentsDate;
|
||||
extern NSString *kUseLogWindow;
|
||||
|
||||
extern NSString *kDownloadURL;
|
||||
extern NSString *kDownloadExtension;
|
||||
|
||||
@@ -129,6 +129,7 @@ NSString *kUseCustomMame = @"UseCustomMame";
|
||||
NSString *kMamePath = @"MamePath";
|
||||
NSString *kMameWorkingDirectory = @"MameWorkingDirectory";
|
||||
NSString *kAutoCloseLogWindow = @"AutoCloseLogWindow";
|
||||
NSString *kUseLogWindow = @"UseLogWindow";
|
||||
NSString *kMameComponentsDate = @"MameComponentsDate";
|
||||
NSString *kDefaultDownloadURL = @"DefaultDownloadURL";
|
||||
NSString *kDefaultDownloadExtension = @"DefaultDownloadExtension";
|
||||
|
||||
+83
-4
@@ -88,12 +88,25 @@
|
||||
NSDate *newDate = [defaults objectForKey: kMameComponentsDate];
|
||||
if (![newDate isKindOfClass: [NSDate class]])
|
||||
newDate = nil;
|
||||
|
||||
|
||||
/* oops, I accidentally called 2024-12-07 2025-12-07. So let's ignore future dates... */
|
||||
NSDate *now = [NSDate dateWithTimeIntervalSinceNow: 0];
|
||||
if (oldDate && [oldDate compare: now] >= 0)
|
||||
oldDate = nil;
|
||||
|
||||
|
||||
if (!newDate) return YES; //????
|
||||
if (oldDate && [oldDate compare: newDate] >= 0) return YES;
|
||||
|
||||
#if 0
|
||||
NSString *path = [bundle pathForResource: @"mame-data" ofType: @"tgz"];
|
||||
if (!path) return YES; // Ample Lite?
|
||||
#endif
|
||||
|
||||
NSString *ssp = [bundle sharedSupportPath];
|
||||
NSString *path = [ssp stringByAppendingPathComponent: @"mame-data.tgz"];
|
||||
if (![[NSFileManager defaultManager] fileExistsAtPath: path])
|
||||
return YES; // Ample Lite?
|
||||
|
||||
|
||||
NSWindow *win = _installWindow;
|
||||
@@ -115,11 +128,11 @@
|
||||
|
||||
dispatch_time_t when = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC));
|
||||
[task setTerminationHandler: ^(NSTask *task){
|
||||
|
||||
|
||||
int st = [task terminationStatus];
|
||||
// delay so the install window is visible, I think
|
||||
dispatch_after(when, dispatch_get_main_queue(), ^{
|
||||
|
||||
int st = [task terminationStatus];
|
||||
|
||||
if (st) {
|
||||
NSAlert *alert = [NSAlert new];
|
||||
[alert setMessageText: @"An error occurred extracting MAME components"];
|
||||
@@ -238,4 +251,70 @@
|
||||
}
|
||||
|
||||
|
||||
-(IBAction)installMameComponents:(id)sender {
|
||||
|
||||
|
||||
/* install the mame data components. */
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
NSURL *sd = SupportDirectory();
|
||||
|
||||
NSURL *ample_url = [sd URLByAppendingPathComponent: @"Ample.plist"];
|
||||
NSMutableDictionary *d = [NSMutableDictionary dictionaryWithContentsOfURL: ample_url];
|
||||
|
||||
//NSDate *oldDate = [d objectForKey: kMameComponentsDate];
|
||||
NSDate *newDate = [defaults objectForKey: kMameComponentsDate];
|
||||
if (![newDate isKindOfClass: [NSDate class]])
|
||||
newDate = nil;
|
||||
|
||||
NSString *path = [bundle pathForResource: @"mame-data" ofType: @"tgz"];
|
||||
if (!path) return; // Ample Lite?
|
||||
|
||||
|
||||
NSWindow *win = _installWindow;
|
||||
[win makeKeyAndOrderFront: nil];
|
||||
NSTask *task = [NSTask new];
|
||||
NSArray *argv = @[
|
||||
@"xfz",
|
||||
path
|
||||
];
|
||||
if (@available(macOS 10.13, *)) {
|
||||
[task setExecutableURL: [NSURL fileURLWithPath: @"/usr/bin/tar"]];
|
||||
[task setCurrentDirectoryURL: sd];
|
||||
} else {
|
||||
[task setLaunchPath: @"/usr/bin/tar"];
|
||||
[task setCurrentDirectoryPath: SupportDirectoryPath()];
|
||||
}
|
||||
[task setArguments: argv];
|
||||
|
||||
|
||||
//dispatch_time_t when = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC));
|
||||
[task setTerminationHandler: ^(NSTask *task){
|
||||
|
||||
int st = [task terminationStatus];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
|
||||
if (st) {
|
||||
NSAlert *alert = [NSAlert new];
|
||||
[alert setMessageText: @"An error occurred extracting MAME components"];
|
||||
[alert runModal];
|
||||
[win close];
|
||||
return;
|
||||
}
|
||||
|
||||
if (d) {
|
||||
[d setObject: newDate forKey: kMameComponentsDate];
|
||||
[d writeToURL: ample_url atomically: YES];
|
||||
} else {
|
||||
[@{ kMameComponentsDate: newDate } writeToURL: ample_url atomically: YES];
|
||||
}
|
||||
[win close];
|
||||
// need to reload the software list data.
|
||||
});
|
||||
|
||||
}];
|
||||
[task launch];
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="19529" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="19529"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@@ -41,12 +41,12 @@
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-667" y="170"/>
|
||||
</menu>
|
||||
<window title="Recent Disk Images" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" frameAutosaveName="RecentDiskImagesWindow" animationBehavior="default" id="AtY-lA-KIp">
|
||||
<window title="Disk Images" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" frameAutosaveName="RecentDiskImagesWindow" animationBehavior="default" toolbarStyle="unified" id="AtY-lA-KIp">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="283" y="305" width="408" height="270"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
||||
<view key="contentView" id="zHI-2R-bOe">
|
||||
<view key="contentView" misplaced="YES" id="zHI-2R-bOe">
|
||||
<rect key="frame" x="0.0" y="0.0" width="408" height="270"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
@@ -55,7 +55,7 @@
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" id="SFr-s6-6di">
|
||||
<rect key="frame" x="1" y="1" width="408" height="270"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnSelection="YES" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" headerView="iwP-JL-O3g" viewBased="YES" id="cqO-ig-A9t">
|
||||
<rect key="frame" x="0.0" y="0.0" width="408" height="245"/>
|
||||
@@ -81,7 +81,7 @@
|
||||
<rect key="frame" x="1" y="1" width="305" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gkM-KB-x76">
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gkM-KB-x76">
|
||||
<rect key="frame" x="0.0" y="0.0" width="305" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="PitchDark.2mg" id="Wcg-zo-CeN">
|
||||
@@ -101,7 +101,7 @@
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn width="93" minWidth="40" maxWidth="1000" id="0aJ-xJ-YSS">
|
||||
<tableColumn width="64" minWidth="40" maxWidth="1000" id="0aJ-xJ-YSS">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Size">
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
@@ -115,11 +115,11 @@
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="UW9-AF-U9F">
|
||||
<rect key="frame" x="309" y="1" width="97" height="17"/>
|
||||
<rect key="frame" x="309" y="1" width="68" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6Ry-Zn-euh">
|
||||
<rect key="frame" x="0.0" y="0.0" width="97" height="17"/>
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="6Ry-Zn-euh">
|
||||
<rect key="frame" x="0.0" y="0.0" width="68" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="32 MB" id="fXp-OZ-Qcu">
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -161,19 +161,21 @@
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" id="iwP-JL-O3g">
|
||||
<tableHeaderView key="headerView" wantsLayer="YES" id="iwP-JL-O3g">
|
||||
<rect key="frame" x="0.0" y="0.0" width="408" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
</view>
|
||||
<toolbar key="toolbar" implicitIdentifier="D9701924-6955-47B8-A2FF-DBD466AAEB92" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconOnly" sizeMode="regular" id="Gp6-Kl-lr2">
|
||||
<toolbar key="toolbar" implicitIdentifier="D9701924-6955-47B8-A2FF-DBD466AAEB92" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconOnly" sizeMode="regular" id="Gp6-Kl-lr2">
|
||||
<allowedToolbarItems>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="lBE-ee-rCy"/>
|
||||
<toolbarItem implicitItemIdentifier="C346E56F-4480-4D8A-8485-33A3A51D7B78" label="" paletteLabel="Filter" sizingBehavior="auto" id="DsU-uu-UmZ">
|
||||
<toolbarItem implicitItemIdentifier="C346E56F-4480-4D8A-8485-33A3A51D7B78" label="" paletteLabel="Filter" id="DsU-uu-UmZ">
|
||||
<nil key="toolTip"/>
|
||||
<searchField key="view" wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" id="qHV-IA-ysc">
|
||||
<size key="minSize" width="96" height="22"/>
|
||||
<size key="maxSize" width="200" height="22"/>
|
||||
<searchField key="view" wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" textCompletion="NO" id="qHV-IA-ysc">
|
||||
<rect key="frame" x="0.0" y="14" width="96" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" continuous="YES" borderStyle="bezel" placeholderString="Filter" usesSingleLineMode="YES" bezelStyle="round" id="BWo-eC-ahz">
|
||||
@@ -188,7 +190,6 @@
|
||||
</toolbarItem>
|
||||
</allowedToolbarItems>
|
||||
<defaultToolbarItems>
|
||||
<toolbarItem reference="lBE-ee-rCy"/>
|
||||
<toolbarItem reference="lBE-ee-rCy"/>
|
||||
<toolbarItem reference="DsU-uu-UmZ"/>
|
||||
</defaultToolbarItems>
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15705" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="24506" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15705"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="24506"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
@@ -13,39 +13,39 @@
|
||||
<outlet property="downloadField" destination="sJz-So-jbA" id="WjK-48-FcE"/>
|
||||
<outlet property="formatButton" destination="2Rg-eX-DUq" id="oYo-MG-Sc6"/>
|
||||
<outlet property="missingFilterButton" destination="6c7-tU-3F3" id="89Y-wQ-9pB"/>
|
||||
<outlet property="searchFilter" destination="EuH-NO-RLR" id="ZtY-CC-pgz"/>
|
||||
<outlet property="tableView" destination="FLX-Wt-y53" id="a4O-pk-EAt"/>
|
||||
<outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="ROMs" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" frameAutosaveName="DownloadManagerWindow" animationBehavior="default" id="F0z-JX-Cv5">
|
||||
<window title="ROMs" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" frameAutosaveName="DownloadManagerWindow" animationBehavior="default" toolbarStyle="expanded" id="F0z-JX-Cv5">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="454" height="575"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
|
||||
<value key="minSize" type="size" width="454" height="300"/>
|
||||
<view key="contentView" id="se5-gp-TjO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="454" height="575"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="454" height="551"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="51" horizontalPageScroll="10" verticalLineScroll="51" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="CMD-nT-mEa">
|
||||
<rect key="frame" x="0.0" y="130" width="456" height="446"/>
|
||||
<rect key="frame" x="0.0" y="130" width="456" height="422"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" drawsBackground="NO" id="Igp-aH-flp">
|
||||
<rect key="frame" x="1" y="1" width="454" height="444"/>
|
||||
<clipView key="contentView" drawsBackground="NO" id="Igp-aH-flp">
|
||||
<rect key="frame" x="1" y="1" width="454" height="420"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="49" rowSizeStyle="automatic" viewBased="YES" id="FLX-Wt-y53">
|
||||
<rect key="frame" x="0.0" y="0.0" width="454" height="444"/>
|
||||
<tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="49" rowSizeStyle="automatic" viewBased="YES" id="FLX-Wt-y53">
|
||||
<rect key="frame" x="0.0" y="0.0" width="454" height="420"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableViewGridLines key="gridStyleMask" dashed="YES"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="451" minWidth="40" maxWidth="1000" id="5jP-bY-fhI">
|
||||
<tableColumn width="442" minWidth="40" maxWidth="1000" id="5jP-bY-fhI">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
@@ -60,7 +60,7 @@
|
||||
<rect key="frame" x="1" y="1" width="451" height="49"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="A44-us-TEl">
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="A44-us-TEl">
|
||||
<rect key="frame" x="41" y="28" width="409" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="NSU-6I-nsG">
|
||||
@@ -81,7 +81,7 @@
|
||||
<binding destination="onK-6l-2iV" name="toolTip" keyPath="objectValue.value" id="rUb-Jb-KbT"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hfu-hP-QAH">
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hfu-hP-QAH">
|
||||
<rect key="frame" x="41" y="3" width="409" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="1cQ-Zh-q0o">
|
||||
@@ -117,6 +117,7 @@
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<action trigger="doubleAction" selector="doubleClick:" target="-2" id="y2y-h7-cfD"/>
|
||||
<binding destination="jhO-4z-Qwt" name="content" keyPath="arrangedObjects" id="2av-gV-V4K"/>
|
||||
<outlet property="menu" destination="RJM-21-hjO" id="xpL-0n-1jm"/>
|
||||
</connections>
|
||||
@@ -133,7 +134,7 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sJz-So-jbA">
|
||||
<textField focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sJz-So-jbA">
|
||||
<rect key="frame" x="51" y="101" width="383" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="HKe-di-YSs">
|
||||
@@ -161,7 +162,7 @@
|
||||
</binding>
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="d2z-4T-Wh1">
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="d2z-4T-Wh1">
|
||||
<rect key="frame" x="10" y="104" width="30" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="URL" id="lcZ-R4-WsS">
|
||||
@@ -170,7 +171,7 @@
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZXO-bJ-btp">
|
||||
<textField focusRingType="none" horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZXO-bJ-btp">
|
||||
<rect key="frame" x="10" y="66" width="34" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Type" id="KGI-t9-OMF">
|
||||
@@ -183,7 +184,7 @@
|
||||
<rect key="frame" x="12" y="52" width="422" height="5"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||
</box>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" imageHugsTitle="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dpY-qZ-2Nk">
|
||||
<button imageHugsTitle="YES" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="dpY-qZ-2Nk">
|
||||
<rect key="frame" x="93" y="13" width="115" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="ROMs" bezelStyle="rounded" image="NSFolder" imagePosition="left" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="E0t-sX-rgE">
|
||||
@@ -212,7 +213,7 @@
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="zip" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="7Cq-Lh-dgg" id="uum-dC-XD0">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<font key="font" metaFont="message"/>
|
||||
<menu key="menu" autoenablesItems="NO" id="kcg-aZ-mD9">
|
||||
<items>
|
||||
<menuItem title="zip" state="on" tag="1" id="7Cq-Lh-dgg"/>
|
||||
@@ -247,15 +248,14 @@
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<toolbar key="toolbar" implicitIdentifier="B60021E6-BFBC-44E6-97DC-120AA9FD3269" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconOnly" sizeMode="regular" id="kpz-W4-xgh">
|
||||
<toolbar key="toolbar" implicitIdentifier="B60021E6-BFBC-44E6-97DC-120AA9FD3269" autosavesConfiguration="NO" allowsUserCustomization="NO" showsBaselineSeparator="NO" displayMode="iconOnly" sizeMode="regular" id="kpz-W4-xgh">
|
||||
<allowedToolbarItems>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarSpaceItem" id="tbY-ts-Irb"/>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="3Kc-zG-IdN"/>
|
||||
<toolbarItem implicitItemIdentifier="BD743A15-0B61-48FF-9EED-FD8D57EF8459" label="All" paletteLabel="All" tag="1" sizingBehavior="auto" id="Jj0-n8-I5a">
|
||||
<toolbarItem implicitItemIdentifier="BD743A15-0B61-48FF-9EED-FD8D57EF8459" label="All" paletteLabel="All" tag="1" title="All" sizingBehavior="auto" id="Jj0-n8-I5a">
|
||||
<nil key="toolTip"/>
|
||||
<button key="view" verticalHuggingPriority="750" tag="1" id="Kgj-LP-FsF">
|
||||
<rect key="frame" x="0.0" y="14" width="74" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<button key="view" tag="1" verticalHuggingPriority="750" id="Kgj-LP-FsF">
|
||||
<rect key="frame" x="0.0" y="14" width="30" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<buttonCell key="cell" type="recessed" title="All" bezelStyle="recessed" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="9s7-S1-hW1">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||
<font key="font" metaFont="systemBold" size="12"/>
|
||||
@@ -265,11 +265,11 @@
|
||||
</connections>
|
||||
</button>
|
||||
</toolbarItem>
|
||||
<toolbarItem implicitItemIdentifier="5B013840-E582-4568-8448-DDD7EE1E5AE2" label="Missing" paletteLabel="Missing" tag="2" sizingBehavior="auto" id="GV4-aX-5Ox">
|
||||
<toolbarItem implicitItemIdentifier="5B013840-E582-4568-8448-DDD7EE1E5AE2" label="Missing" paletteLabel="Missing" tag="2" title="Missing" sizingBehavior="auto" id="GV4-aX-5Ox">
|
||||
<nil key="toolTip"/>
|
||||
<button key="view" verticalHuggingPriority="750" tag="2" id="6c7-tU-3F3">
|
||||
<rect key="frame" x="0.0" y="14" width="74" height="20"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<button key="view" tag="2" verticalHuggingPriority="750" id="6c7-tU-3F3">
|
||||
<rect key="frame" x="0.0" y="14" width="61" height="19"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<buttonCell key="cell" type="recessed" title="Missing" bezelStyle="recessed" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="ui2-dz-IZj">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||
<font key="font" metaFont="systemBold" size="12"/>
|
||||
@@ -279,10 +279,30 @@
|
||||
</connections>
|
||||
</button>
|
||||
</toolbarItem>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="3Kc-zG-IdN"/>
|
||||
<toolbarItem implicitItemIdentifier="5FAD9453-A303-4057-A122-37BF870A4D81" label="Search" paletteLabel="Search" tag="3" id="kT0-k4-f7d">
|
||||
<nil key="toolTip"/>
|
||||
<size key="minSize" width="96" height="22"/>
|
||||
<size key="maxSize" width="200" height="22"/>
|
||||
<searchField key="view" wantsLayer="YES" focusRingType="none" verticalHuggingPriority="750" tag="3" textCompletion="NO" id="EuH-NO-RLR">
|
||||
<rect key="frame" x="0.0" y="14" width="96" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" usesSingleLineMode="YES" bezelStyle="round" id="6vV-pw-9Ej">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</searchFieldCell>
|
||||
<connections>
|
||||
<action selector="search:" target="-2" id="JsE-wh-qQV"/>
|
||||
</connections>
|
||||
</searchField>
|
||||
</toolbarItem>
|
||||
</allowedToolbarItems>
|
||||
<defaultToolbarItems>
|
||||
<toolbarItem reference="Jj0-n8-I5a"/>
|
||||
<toolbarItem reference="GV4-aX-5Ox"/>
|
||||
<toolbarItem reference="3Kc-zG-IdN"/>
|
||||
<toolbarItem reference="kT0-k4-f7d"/>
|
||||
</defaultToolbarItems>
|
||||
</toolbar>
|
||||
<connections>
|
||||
@@ -298,6 +318,12 @@
|
||||
<action selector="showInFinder:" target="-2" id="ltL-yL-7EP"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Move to Trash" id="x1Q-OF-5hM">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="moveToTrash:" target="-2" id="swr-yf-hA2"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Download" tag="2" id="ree-Zg-jYB">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
@@ -316,7 +342,9 @@
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-348" y="164"/>
|
||||
</menu>
|
||||
<arrayController objectClassName="DownloadItem" editable="NO" preservesSelection="NO" selectsInsertedObjects="NO" avoidsEmptySelection="NO" clearsFilterPredicateOnInsertion="NO" automaticallyRearrangesObjects="YES" id="jhO-4z-Qwt" customClass="DownloadItemArrayController"/>
|
||||
<arrayController objectClassName="DownloadItem" editable="NO" preservesSelection="NO" selectsInsertedObjects="NO" avoidsEmptySelection="NO" clearsFilterPredicateOnInsertion="NO" automaticallyRearrangesObjects="YES" id="jhO-4z-Qwt" customClass="DownloadItemArrayController">
|
||||
<classReference key="objectClass" className="DownloadItem"/>
|
||||
</arrayController>
|
||||
<userDefaultsController representsSharedInstance="YES" id="721-9N-Bma"/>
|
||||
</objects>
|
||||
<resources>
|
||||
|
||||
@@ -119,6 +119,9 @@
|
||||
<menuItem title="LCD Grid" tag="5" id="A6k-ku-z2M">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Fighters" id="1aA-ge-f8R">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
@@ -156,10 +159,21 @@
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="m4N-Qw-mem">
|
||||
<items>
|
||||
<menuItem title="Full Screen" state="on" id="0zZ-Ib-Fne"/>
|
||||
<menuItem title="Window 1x" id="3bZ-rq-fCt"/>
|
||||
<menuItem title="Window 2x" id="KA4-Rs-yyK"/>
|
||||
<menuItem title="Window 3x" id="Dbh-Js-pMx" userLabel="Window 3x"/>
|
||||
<menuItem title="Full Screen" state="on" id="0zZ-Ib-Fne">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Window 1x" id="3bZ-rq-fCt">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Window 2x" id="KA4-Rs-yyK">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Window 3x" id="Dbh-Js-pMx" userLabel="Window 3x">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Window 4x" id="GCs-En-3Jv">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
@@ -445,11 +459,6 @@
|
||||
</searchFieldCell>
|
||||
<connections>
|
||||
<action selector="softwareChanged:" target="-2" id="879-da-UEc"/>
|
||||
<binding destination="-2" name="hidden" keyPath="machine" id="RdE-9k-oFd">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSIsNil</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</searchField>
|
||||
<customView id="oVt-eD-aaj" customClass="FlippedView">
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
<customObject id="rSq-qV-SGy" customClass="BookmarkManager">
|
||||
<connections>
|
||||
<outlet property="menu" destination="ha0-nx-PIl" id="Ozd-ID-egK"/>
|
||||
<outlet property="updateMenuItem" destination="30b-vT-HIa" id="AgZ-LE-no6"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate">
|
||||
@@ -44,6 +45,9 @@
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="VOq-y0-SEH"/>
|
||||
<menuItem title="Reinstall MAME components" hidden="YES" id="c3P-WT-eUP">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Preferences…" keyEquivalent="," id="BOF-NM-1cW">
|
||||
<connections>
|
||||
<action selector="displayPreferences:" target="Voe-Tx-rLC" id="Hsm-pX-sUc"/>
|
||||
@@ -416,6 +420,11 @@
|
||||
<action selector="addBookmark:" target="-1" id="cqp-ko-BfQ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Update Bookmark" keyEquivalent="D" id="30b-vT-HIa">
|
||||
<connections>
|
||||
<action selector="updateBookmark:" target="-1" id="Au0-Sp-cUD"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Set Default" hidden="YES" id="vbR-vS-lqO">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Oz5-Xb-btk">
|
||||
<rect key="frame" x="138" y="181" width="322" height="21"/>
|
||||
<rect key="frame" x="138" y="159" width="322" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="vDR-2V-qxd">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
@@ -40,7 +40,7 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="l8V-pC-gml">
|
||||
<rect key="frame" x="138" y="150" width="322" height="21"/>
|
||||
<rect key="frame" x="138" y="128" width="322" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" id="wfj-GY-Qu2">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
@@ -54,7 +54,7 @@
|
||||
</connections>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vTJ-Ez-c1R">
|
||||
<rect key="frame" x="18" y="153" width="114" height="16"/>
|
||||
<rect key="frame" x="18" y="131" width="114" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Working Directory" id="UHt-0s-zxA">
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -63,7 +63,7 @@
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="KAN-P2-ydI">
|
||||
<rect key="frame" x="136" y="234" width="217" height="18"/>
|
||||
<rect key="frame" x="136" y="212" width="217" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Close log window on normal exit" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="QMz-O0-06U">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
@@ -74,7 +74,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="j7D-jC-17Q">
|
||||
<rect key="frame" x="136" y="208" width="139" height="18"/>
|
||||
<rect key="frame" x="136" y="186" width="139" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Use Custom MAME" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="V61-mz-QFo">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
@@ -96,7 +96,7 @@
|
||||
</connections>
|
||||
</button>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qmb-Ag-Xyr">
|
||||
<rect key="frame" x="58" y="184" width="74" height="16"/>
|
||||
<rect key="frame" x="58" y="162" width="74" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="MAME Path" id="Xcq-4g-Wlw">
|
||||
<font key="font" metaFont="system"/>
|
||||
@@ -104,53 +104,22 @@
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PXx-2I-oSk">
|
||||
<rect key="frame" x="136" y="106" width="140" height="25"/>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qT7-cc-Phc">
|
||||
<rect key="frame" x="136" y="234" width="118" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="–None–" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="lcf-aK-7x5" id="Aam-66-SaB">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Use log window" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="Adv-KH-abG">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<menu key="menu" id="rvM-u0-7pI">
|
||||
<items>
|
||||
<menuItem title="–None–" state="on" id="lcf-aK-7x5"/>
|
||||
<menuItem isSeparatorItem="YES" id="eqM-0n-Mdx"/>
|
||||
<menuItem title="Item 2" tag="1234" id="sbG-FP-AWT"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="eFY-hy-gK0" name="content" keyPath="arrangedObjects" id="5bD-u2-QhR">
|
||||
<dictionary key="options">
|
||||
<integer key="NSContentPlacementTag" value="1234"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="eFY-hy-gK0" name="contentValues" keyPath="arrangedObjects.name" previousBinding="5bD-u2-QhR" id="1ZH-FE-GV4">
|
||||
<dictionary key="options">
|
||||
<integer key="NSContentPlacementTag" value="1234"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="yvB-HG-64y" name="value" keyPath="values.UseLogWindow" id="meK-Jb-s8b"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="506-Pm-ZdU">
|
||||
<rect key="frame" x="30" y="112" width="102" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Default Settings" id="7i3-6z-dcZ">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<point key="canvasLocation" x="140" y="147"/>
|
||||
<point key="canvasLocation" x="80" y="144"/>
|
||||
</window>
|
||||
<userDefaultsController id="KVS-Ag-1un"/>
|
||||
<userDefaultsController representsSharedInstance="YES" id="yvB-HG-64y"/>
|
||||
<arrayController mode="entity" entityName="Bookmark" editable="NO" automaticallyPreparesContent="YES" selectsInsertedObjects="NO" avoidsEmptySelection="NO" clearsFilterPredicateOnInsertion="NO" automaticallyRearrangesObjects="YES" id="eFY-hy-gK0">
|
||||
<connections>
|
||||
<binding destination="XJv-1E-Jqj" name="managedObjectContext" keyPath="managedObjectContext" id="Q2L-Oe-bi6"/>
|
||||
</connections>
|
||||
</arrayController>
|
||||
<customObject id="XJv-1E-Jqj" customClass="BookmarkManager"/>
|
||||
</objects>
|
||||
</document>
|
||||
@@ -10,6 +10,7 @@
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
@class NSMenu;
|
||||
@class NSMenuItem;
|
||||
@class Bookmark;
|
||||
@class DiskImage;
|
||||
|
||||
@@ -18,8 +19,11 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
@interface BookmarkManager : NSObject
|
||||
|
||||
@property (weak) IBOutlet NSMenu *menu;
|
||||
@property (weak) IBOutlet NSMenuItem *updateMenuItem;
|
||||
@property (readonly) NSManagedObjectContext *managedObjectContext;
|
||||
|
||||
@property (nullable) Bookmark *currentBookmark;
|
||||
|
||||
+(instancetype)sharedManager;
|
||||
|
||||
-(NSString *)uniqueBookmarkName: (NSString *)name;
|
||||
@@ -28,13 +32,13 @@ NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
//-(NSError *)saveDefault: (NSDictionary *)bookmark;
|
||||
|
||||
-(Bookmark *)defaultBookmark;
|
||||
-(NSDictionary *)loadDefault;
|
||||
|
||||
-(NSError *)setAutomatic: (Bookmark *)bookmark;
|
||||
|
||||
-(BOOL)addDiskImage: (NSObject *)pathOrURL;
|
||||
|
||||
|
||||
//-(void)convertLegacyBookmarks;
|
||||
@end
|
||||
|
||||
|
||||
+31
-7
@@ -28,6 +28,8 @@
|
||||
NSArrayController *_items;
|
||||
NSUInteger _newMenuGeneration;
|
||||
NSUInteger _currentMenuGeneration;
|
||||
|
||||
Bookmark *_currentBookmark;
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -235,20 +237,22 @@ static BookmarkManager *singleton = nil;
|
||||
}
|
||||
|
||||
|
||||
-(NSDictionary *)loadDefault {
|
||||
-(Bookmark *)defaultBookmark {
|
||||
|
||||
NSFetchRequest *req;
|
||||
NSError *error;
|
||||
NSArray *array;
|
||||
Bookmark *b;
|
||||
|
||||
req = [Bookmark fetchRequest];
|
||||
[req setPredicate: [NSPredicate predicateWithFormat: @"automatic == TRUE"]];
|
||||
array = [_moc executeFetchRequest: req error: &error];
|
||||
|
||||
b = [array firstObject];
|
||||
|
||||
return [b dictionary];
|
||||
return [array firstObject];
|
||||
}
|
||||
|
||||
-(NSDictionary *)loadDefault {
|
||||
Bookmark *b = [self defaultBookmark];
|
||||
return [b dictionary];
|
||||
}
|
||||
|
||||
/* save as .Default */
|
||||
@@ -557,17 +561,37 @@ static NSString *kMenuContext = @"";
|
||||
{
|
||||
}
|
||||
|
||||
-(Bookmark *)currentBookmark {
|
||||
return _currentBookmark;
|
||||
}
|
||||
-(void)setCurrentBookmark:(Bookmark *)currentBookmark {
|
||||
if (currentBookmark == _currentBookmark) return;
|
||||
_currentBookmark = currentBookmark;
|
||||
_newMenuGeneration++;
|
||||
}
|
||||
|
||||
-(void)menuNeedsUpdate:(NSMenu *)menu {
|
||||
|
||||
if (_currentMenuGeneration == _newMenuGeneration) return;
|
||||
_currentMenuGeneration = _newMenuGeneration;
|
||||
|
||||
if (_currentBookmark && _updateMenuItem) {
|
||||
NSString *title = [NSString stringWithFormat: @"Update “%@”", [_currentBookmark name]];
|
||||
[_updateMenuItem setHidden: NO];
|
||||
[_updateMenuItem setTitle: title];
|
||||
[_updateMenuItem setRepresentedObject: _currentBookmark];
|
||||
} else {
|
||||
[_updateMenuItem setHidden: YES];
|
||||
[_updateMenuItem setRepresentedObject: nil];
|
||||
}
|
||||
|
||||
|
||||
|
||||
NSArray *menus = [menu itemArray];
|
||||
for (NSMenuItem *item in [menus reverseObjectEnumerator]) {
|
||||
if ([item tag] == 0xdeadbeef) [_menu removeItem: item];
|
||||
}
|
||||
|
||||
|
||||
NSArray *array = [_items arrangedObjects];
|
||||
for (Bookmark *b in array) {
|
||||
|
||||
@@ -578,7 +602,7 @@ static NSString *kMenuContext = @"";
|
||||
if ([b automatic]) {
|
||||
|
||||
[item setOnStateImage: [NSImage imageNamed: NSImageNameStatusAvailable]];
|
||||
[item setState: NSOnState];
|
||||
[item setState: NSControlStateValueOn];
|
||||
}
|
||||
//if ([b automatic]) [item setAttributedTitle: ItalicMenuString([b name])];
|
||||
//[item setState: [b automatic] ? NSMixedState : NSOffState];
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>MameComponentsDate</key>
|
||||
<date>2022-02-23T17:00:00Z</date>
|
||||
<date>2026-02-28T12:00:00Z</date>
|
||||
<key>UseCustomMame</key>
|
||||
<false/>
|
||||
<key>AutoCloseLogWindow</key>
|
||||
@@ -15,8 +15,10 @@
|
||||
<key>NSQuitAlwaysKeepsWindows</key>
|
||||
<true/>
|
||||
<key>DefaultDownloadURL</key>
|
||||
<string>https://archive.org/download/mame-0.231-merged</string>
|
||||
<string>https://www.callapple.org/roms/</string>
|
||||
<key>UseLogWindow</key>
|
||||
<true/>
|
||||
<key>DefaultDownloadExtension</key>
|
||||
<string>7z</string>
|
||||
<string>zip</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -46,7 +46,14 @@
|
||||
//[self loadRecentDiskImages];
|
||||
|
||||
_extensions = [NSSet setWithObjects:
|
||||
@"2img", @"2mg", @"chd", @"dc", @"do", @"dsk", @"hd", @"hdv", @"image", @"nib", @"po", @"wav", @"woz", @"iso", @"raw", nil
|
||||
@"2img", @"2mg", @"chd", @"dc", @"do", @"dsk", @"hd", @"hdv", @"image", @"nib", @"po", @"wav", @"woz", @"iso", @"raw",
|
||||
// st, etc.
|
||||
@"mfm", @"st", @"msa", @"stx", @"ipf",
|
||||
//
|
||||
@"rom", @"bin",
|
||||
// not supported/relevant.
|
||||
// @"mfi", @"dfi", @"hfe", @"d77" @"d88", @"1dd", @"cqm", @"cqi", @"td0", @"imd",
|
||||
nil
|
||||
];
|
||||
}
|
||||
return self;
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
#import "Menu.h"
|
||||
|
||||
|
||||
static NSString *Extensions[] = { @"zip", @"7z" };
|
||||
|
||||
|
||||
enum {
|
||||
kTagZip = 1,
|
||||
kTag7z = 2,
|
||||
@@ -90,6 +93,7 @@ enum {
|
||||
|
||||
@property NSUInteger status;
|
||||
@property NSUInteger index;
|
||||
@property NSUInteger fileSize;
|
||||
|
||||
@property (readonly) NSColor *titleColor;
|
||||
@property (readonly) NSColor *descriptionColor;
|
||||
@@ -99,6 +103,8 @@ enum {
|
||||
-(void)beginDownloadWithTask:(NSURLSessionDownloadTask *)task;
|
||||
-(void)completeWithError: (NSError *)error;
|
||||
-(NSString *)statusDescription;
|
||||
|
||||
-(void)refresh: (NSURL *)localURL;
|
||||
@end
|
||||
|
||||
|
||||
@@ -127,6 +133,7 @@ enum {
|
||||
/* filter buttons */
|
||||
@property (weak) IBOutlet NSButton *allFilterButton;
|
||||
@property (weak) IBOutlet NSButton *missingFilterButton;
|
||||
@property (weak) IBOutlet NSSearchField *searchFilter;
|
||||
|
||||
@property (strong) IBOutlet NSArrayController *arrayController;
|
||||
|
||||
@@ -135,7 +142,7 @@ enum {
|
||||
@end
|
||||
|
||||
@implementation DownloadWindowController {
|
||||
|
||||
|
||||
NSArray *_items;
|
||||
NSURL *_romFolder;
|
||||
NSURL *_defaultDownloadURL;
|
||||
@@ -144,8 +151,13 @@ enum {
|
||||
NSURLSession *_session;
|
||||
NSMutableDictionary *_taskIndex;
|
||||
NSUserDefaults *_defaults;
|
||||
|
||||
|
||||
NSArray<NSButton *> *_filterButtons;
|
||||
|
||||
NSPredicate *_missingPredicate;
|
||||
NSPredicate *_searchPredicate;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+(instancetype)sharedInstance {
|
||||
@@ -168,7 +180,7 @@ enum {
|
||||
|
||||
#if 0
|
||||
- (void)encodeWithCoder:(nonnull NSCoder *)coder {
|
||||
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -178,11 +190,11 @@ enum {
|
||||
|
||||
-(void)windowWillLoad {
|
||||
_defaults = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
|
||||
// set here so binding works.
|
||||
NSString *s = [_defaults stringForKey: kDownloadExtension];
|
||||
if (![s length]) s = [_defaults stringForKey: kDefaultDownloadExtension];
|
||||
|
||||
|
||||
_downloadExtension = s;
|
||||
}
|
||||
|
||||
@@ -194,12 +206,12 @@ enum {
|
||||
[window setRestorable: YES];
|
||||
[window setRestorationClass: [self class]];
|
||||
#endif
|
||||
|
||||
|
||||
_filterButtons = @[
|
||||
_allFilterButton,
|
||||
_missingFilterButton
|
||||
];
|
||||
|
||||
|
||||
|
||||
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
|
||||
|
||||
@@ -207,21 +219,24 @@ enum {
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
#ifdef AMPLE_LITE
|
||||
NSURL *url = [bundle URLForResource: @"roms~extra" withExtension: @"plist"];
|
||||
#else
|
||||
NSURL *url = [bundle URLForResource: @"roms" withExtension: @"plist"];
|
||||
|
||||
#endif
|
||||
NSArray *roms = [NSArray arrayWithContentsOfURL: url];
|
||||
|
||||
|
||||
NSURL *sd = SupportDirectory();
|
||||
|
||||
_romFolder = [sd URLByAppendingPathComponent: @"roms"];
|
||||
|
||||
|
||||
[fm createDirectoryAtURL: _romFolder withIntermediateDirectories: YES attributes: nil error: &error];
|
||||
|
||||
// so blank URL isn't overwritten.
|
||||
NSString *s = [_defaults stringForKey: kDefaultDownloadURL];
|
||||
_defaultDownloadURL = [NSURL URLWithString: s];
|
||||
[_downloadField setPlaceholderString: s];
|
||||
|
||||
|
||||
s = [_defaults stringForKey: kDownloadURL];
|
||||
if ([s length]) {
|
||||
[_downloadField setStringValue: s];
|
||||
@@ -229,20 +244,20 @@ enum {
|
||||
} else {
|
||||
_downloadURL = _defaultDownloadURL;
|
||||
}
|
||||
|
||||
|
||||
[self initializeExtensionMenu];
|
||||
|
||||
|
||||
|
||||
[self setCurrentROM: @""];
|
||||
[self setCurrentCount: 0];
|
||||
[self setTotalCount: [roms count]];
|
||||
[self setErrorCount: 0];
|
||||
|
||||
|
||||
|
||||
NSMutableArray *tmp = [NSMutableArray arrayWithCapacity: [roms count]];
|
||||
unsigned ix = 0;
|
||||
for (NSDictionary *d in roms) {
|
||||
|
||||
|
||||
DownloadItem *item = [DownloadItem new];
|
||||
[item setValue: [d objectForKey: @"value"]];
|
||||
[item setName: [d objectForKey: @"description"]];
|
||||
@@ -258,7 +273,7 @@ enum {
|
||||
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
|
||||
_session = [NSURLSession sessionWithConfiguration: config delegate: self delegateQueue: nil];
|
||||
_taskIndex = [NSMutableDictionary dictionaryWithCapacity: [_items count]];
|
||||
|
||||
|
||||
//[self download];
|
||||
}
|
||||
|
||||
@@ -267,13 +282,13 @@ enum {
|
||||
#if 0
|
||||
-(void)validateURL: (NSString *)url {
|
||||
NSURL *v;
|
||||
|
||||
|
||||
if (![url length]) {
|
||||
_effectiveURL = [NSURL URLWithString: _downloadURL];
|
||||
[_downloadField setTextColor: nil];
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
v = [NSURL URLWithString: url];
|
||||
if (v) {
|
||||
_effectiveURL = v;
|
||||
@@ -291,36 +306,36 @@ enum {
|
||||
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
|
||||
_session = [NSURLSession sessionWithConfiguration: config delegate: self delegateQueue: nil];
|
||||
}
|
||||
|
||||
|
||||
NSURLSessionDownloadTask *task;
|
||||
NSString *s = [item value];
|
||||
NSString *path = [s stringByAppendingPathExtension: _downloadExtension];
|
||||
NSURL *url = [_downloadURL URLByAppendingPathComponent: path];
|
||||
|
||||
|
||||
task = [_session downloadTaskWithURL: url];
|
||||
|
||||
|
||||
[item beginDownloadWithTask: task];
|
||||
[_taskIndex setObject: item forKey: task];
|
||||
|
||||
[task resume];
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(void)download {
|
||||
|
||||
|
||||
// run in thread?
|
||||
//unsigned count = 0;
|
||||
|
||||
for (DownloadItem *item in _items) {
|
||||
|
||||
|
||||
NSURLSessionDownloadTask *task;
|
||||
NSString *s = [item value];
|
||||
NSString *path = [s stringByAppendingPathExtension: _downloadExtension];
|
||||
NSURL *url = [_downloadURL URLByAppendingPathComponent: path];
|
||||
|
||||
|
||||
task = [_session downloadTaskWithURL: url];
|
||||
[_taskIndex setObject: item forKey: task];
|
||||
|
||||
|
||||
[item setTask: task];
|
||||
|
||||
[task resume];
|
||||
@@ -329,7 +344,7 @@ enum {
|
||||
//if (count >= 2) break;
|
||||
}
|
||||
[self setActive: YES];
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(DownloadItem *)clickedItem {
|
||||
@@ -340,24 +355,24 @@ enum {
|
||||
}
|
||||
#if 0
|
||||
-(void)redrawRow: (NSUInteger)row {
|
||||
|
||||
|
||||
//NSRect r = [_tableView rectOfRow: row];
|
||||
//[_tableView setNeedsDisplayInRect: r];
|
||||
|
||||
|
||||
NSIndexSet *rIx = [NSIndexSet indexSetWithIndex: row];
|
||||
NSIndexSet *cIx = [NSIndexSet indexSetWithIndex: 0];
|
||||
|
||||
|
||||
[_tableView reloadDataForRowIndexes: rIx columnIndexes: cIx];
|
||||
}
|
||||
#endif
|
||||
|
||||
-(void)initializeExtensionMenu {
|
||||
|
||||
|
||||
unsigned tag;
|
||||
// mark default download extension.
|
||||
NSString *defaultExt = [_defaults stringForKey: kDefaultDownloadExtension];
|
||||
tag = [DownloadExtensionTransformer stringToNumber: defaultExt];
|
||||
|
||||
|
||||
NSMenuItem *item = [[_formatButton menu] itemWithTag: tag];
|
||||
if (item) {
|
||||
[item setAttributedTitle: ItalicMenuString([item title])];
|
||||
@@ -405,7 +420,7 @@ enum {
|
||||
delta = YES;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (delta) {
|
||||
[self setActive: YES];
|
||||
}
|
||||
@@ -417,30 +432,31 @@ enum {
|
||||
}
|
||||
|
||||
-(IBAction)refreshROMs: (id)sender {
|
||||
|
||||
|
||||
NSString *romdir = [SupportDirectoryPath() stringByAppendingPathComponent: @"roms"];
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
for (DownloadItem *item in _items) {
|
||||
NSDictionary *attr = nil;
|
||||
NSString *value = [item value];
|
||||
NSString *s = [romdir stringByAppendingPathComponent: value];
|
||||
NSString *path;
|
||||
path = [s stringByAppendingPathExtension: @"zip"];
|
||||
if ([fm fileExistsAtPath: path]) {
|
||||
[item setStatus: ItemFound];
|
||||
[item setLocalURL: [NSURL fileURLWithPath: path]];
|
||||
continue;
|
||||
|
||||
for (unsigned i = 0; i < 2; ++i) {
|
||||
path = [s stringByAppendingPathExtension: Extensions[i]];
|
||||
attr = [fm attributesOfItemAtPath: path error: nil];
|
||||
if (attr) break;
|
||||
}
|
||||
|
||||
path = [s stringByAppendingPathExtension: @"7z"];
|
||||
if ([fm fileExistsAtPath: path]) {
|
||||
if (attr) {
|
||||
[item setStatus: ItemFound];
|
||||
[item setLocalURL: [NSURL fileURLWithPath: path]];
|
||||
continue;
|
||||
[item setFileSize: [attr fileSize]];
|
||||
} else {
|
||||
[item setStatus: ItemMissing];
|
||||
[item setLocalURL: nil];
|
||||
[item setFileSize: 0];
|
||||
}
|
||||
|
||||
[item setStatus: ItemMissing];
|
||||
[item setLocalURL: nil];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -454,12 +470,33 @@ enum {
|
||||
[ws activateFileViewerSelectingURLs: @[url]];
|
||||
}
|
||||
|
||||
- (IBAction)moveToTrash:(id)sender {
|
||||
NSError *error = nil;
|
||||
|
||||
DownloadItem *item = [self clickedItem];
|
||||
if (!item) return;
|
||||
NSURL *url = [item localURL];
|
||||
if (!url) return;
|
||||
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
if ([fm trashItemAtURL: url resultingItemURL: NULL error: &error]) {
|
||||
[item refresh: nil];
|
||||
} else {
|
||||
[self presentError: error];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(IBAction)doubleClick:(id)sender {
|
||||
[self download: sender];
|
||||
}
|
||||
|
||||
- (IBAction)download:(id)sender {
|
||||
DownloadItem *item = [self clickedItem];
|
||||
if (!item) return;
|
||||
|
||||
[self defocus];
|
||||
|
||||
|
||||
[self downloadItem: item];
|
||||
[self setActive: YES];
|
||||
}
|
||||
@@ -488,30 +525,65 @@ enum {
|
||||
}
|
||||
|
||||
|
||||
-(void)updatePredicate {
|
||||
if (!_missingPredicate && !_searchPredicate) {
|
||||
[_arrayController setFilterPredicate: nil];
|
||||
return;
|
||||
}
|
||||
if (_missingPredicate && !_searchPredicate) {
|
||||
[_arrayController setFilterPredicate: _missingPredicate];
|
||||
return;
|
||||
}
|
||||
if (_searchPredicate && !_missingPredicate) {
|
||||
[_arrayController setFilterPredicate: _searchPredicate];
|
||||
return;
|
||||
}
|
||||
NSCompoundPredicate *p = [NSCompoundPredicate andPredicateWithSubpredicates: @[ _missingPredicate, _searchPredicate]];
|
||||
[_arrayController setFilterPredicate: p];
|
||||
}
|
||||
|
||||
- (IBAction)filterButton:(id)sender {
|
||||
|
||||
NSPredicate *p = nil;
|
||||
NSUInteger tag = [sender tag];
|
||||
[sender setState: NSControlStateValueOn];
|
||||
|
||||
|
||||
for (NSButton *b in _filterButtons) {
|
||||
if (b != sender) [b setState: NSControlStateValueOff];
|
||||
}
|
||||
switch (tag) {
|
||||
case 1: // all
|
||||
default:
|
||||
[_arrayController setFilterPredicate: nil];
|
||||
_missingPredicate = nil;
|
||||
break;
|
||||
case 2: // missing.
|
||||
p = [NSPredicate predicateWithBlock: ^BOOL(DownloadItem *item, NSDictionary *bindings){
|
||||
_missingPredicate = [NSPredicate predicateWithBlock: ^BOOL(DownloadItem *item, NSDictionary *bindings){
|
||||
NSURL *localURL = [item localURL];
|
||||
return localURL == nil;
|
||||
}];
|
||||
|
||||
[_arrayController setFilterPredicate: p];
|
||||
break;
|
||||
}
|
||||
|
||||
[self updatePredicate];
|
||||
}
|
||||
- (IBAction)search:(id)sender {
|
||||
NSString *text = [sender stringValue];
|
||||
if (![text length]) {
|
||||
_searchPredicate = nil;
|
||||
} else {
|
||||
|
||||
text = [text lowercaseString];
|
||||
NSPredicate *p = [NSPredicate predicateWithBlock: ^(DownloadItem *item, NSDictionary *bindings){
|
||||
|
||||
NSString *value = [[item value] lowercaseString];
|
||||
NSString *name = [[item name] lowercaseString];
|
||||
|
||||
BOOL ok = [name containsString: text] || [value containsString: text];
|
||||
return ok;
|
||||
}];
|
||||
_searchPredicate = p;
|
||||
|
||||
}
|
||||
[self updatePredicate];
|
||||
}
|
||||
|
||||
|
||||
@@ -542,7 +614,7 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
error = [NSError errorWithDomain: NSURLErrorDomain code: NSURLErrorFileDoesNotExist userInfo: info];
|
||||
}
|
||||
|
||||
|
||||
|
||||
// not sure if strictly necessary but this happens in a background thread
|
||||
// and these are used in KVO binding. Also, main thread only
|
||||
// means no race conditions.
|
||||
@@ -559,22 +631,22 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
if ([taskIndex count] == 0) {
|
||||
[self setActive: NO];
|
||||
}
|
||||
|
||||
|
||||
if (item) {
|
||||
[item completeWithError: error];
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
- (void)URLSession:(NSURLSession *)session downloadTask:(nonnull NSURLSessionDownloadTask *)task didFinishDownloadingToURL:(nonnull NSURL *)location {
|
||||
|
||||
|
||||
|
||||
// NSLog(@"%@", task);
|
||||
// NSLog(@"%@", [task response]);
|
||||
|
||||
|
||||
if (TaskStatusCode(task) != 200) return;
|
||||
|
||||
|
||||
|
||||
// need to move to the destination directory...
|
||||
// file deleted after this function returns, so can't move asynchronously.
|
||||
@@ -582,13 +654,17 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
NSURL *src = [[task originalRequest] URL];
|
||||
NSURL *dest = [_romFolder URLByAppendingPathComponent: [src lastPathComponent]];
|
||||
NSError *error = nil;
|
||||
|
||||
|
||||
/* just in case ... */
|
||||
[fm removeItemAtURL: dest error: NULL];
|
||||
[fm moveItemAtURL: location toURL: dest error: &error];
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^(void){
|
||||
NSMutableDictionary *taskIndex = self->_taskIndex;
|
||||
DownloadItem *item = [taskIndex objectForKey: task];
|
||||
[item setLocalURL: dest];
|
||||
|
||||
if (error) [item completeWithError: error];
|
||||
else [item refresh: dest];
|
||||
});
|
||||
|
||||
NSLog(@"%@", src);
|
||||
@@ -598,13 +674,13 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
|
||||
-(NSURLCredential *)credentialForChallenge: (NSURLAuthenticationChallenge *)challenge {
|
||||
|
||||
|
||||
|
||||
//if ([challenge previousFailureCount]) return nil;
|
||||
|
||||
NSURLCredential *credential = nil;
|
||||
NSURLProtectionSpace *space = [challenge protectionSpace];
|
||||
|
||||
|
||||
|
||||
|
||||
OSStatus status;
|
||||
NSDictionary *query;
|
||||
CFTypeRef item = nil;
|
||||
@@ -620,41 +696,41 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
};
|
||||
|
||||
status = SecItemCopyMatching((CFDictionaryRef)query, &item);
|
||||
NSLog(@"%@", query);
|
||||
//NSLog(@"%@", query);
|
||||
if (status != 0) return nil;
|
||||
|
||||
NSDictionary *d = (__bridge NSDictionary *)item;
|
||||
NSLog(@"%@", d);
|
||||
//NSLog(@"%@", d);
|
||||
|
||||
NSString *account = [d objectForKey: (id)kSecAttrAccount];
|
||||
NSData *passwordData = [d objectForKey: (id)kSecValueData];
|
||||
NSString *password = [[NSString alloc] initWithData: passwordData encoding: NSUTF8StringEncoding];
|
||||
|
||||
|
||||
|
||||
credential = [NSURLCredential credentialWithUser: account password: password persistence: NSURLCredentialPersistenceForSession];
|
||||
|
||||
|
||||
return credential;
|
||||
|
||||
}
|
||||
|
||||
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler {
|
||||
|
||||
|
||||
NSLog(@"challenge: %@", challenge);
|
||||
|
||||
|
||||
if ([challenge previousFailureCount]) {
|
||||
completionHandler(NSURLSessionAuthChallengeCancelAuthenticationChallenge, nil);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
NSURLProtectionSpace *space = [challenge protectionSpace];
|
||||
NSString *method = [space authenticationMethod];
|
||||
|
||||
|
||||
if ([NSURLAuthenticationMethodHTTPBasic isEqualToString: method] ||
|
||||
[NSURLAuthenticationMethodNTLM isEqualToString: method] ||
|
||||
[NSURLAuthenticationMethodHTTPDigest isEqualToString: method]) {
|
||||
|
||||
|
||||
NSURLCredential *credential = [self credentialForChallenge: challenge];
|
||||
|
||||
|
||||
if (credential) {
|
||||
completionHandler(NSURLSessionAuthChallengeUseCredential, credential);
|
||||
return;
|
||||
@@ -697,6 +773,42 @@ static NSInteger TaskStatusCode(NSURLSessionTask *task) {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-(void)refresh: (NSURL *)localURL {
|
||||
NSDictionary *attr = nil;
|
||||
NSError * error = nil;
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
if (localURL) {
|
||||
attr = [fm attributesOfItemAtPath: [localURL path] error: &error];
|
||||
} else {
|
||||
NSString *romdir = [SupportDirectoryPath() stringByAppendingPathComponent: @"roms"];
|
||||
NSString *s = [romdir stringByAppendingPathComponent: _value];
|
||||
|
||||
NSString *path = nil;
|
||||
for (unsigned i = 0; i < 2; ++i) {
|
||||
path = [s stringByAppendingPathExtension: Extensions[i]];
|
||||
attr = [fm attributesOfItemAtPath: path error: nil];
|
||||
if (attr) {
|
||||
localURL = [NSURL fileURLWithPath: path];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (attr && localURL) {
|
||||
[self setLocalURL: localURL];
|
||||
[self setFileSize: [attr fileSize]];
|
||||
[self setStatus: ItemFound];
|
||||
} else {
|
||||
[self setLocalURL: nil];
|
||||
[self setFileSize: 0];
|
||||
if (_status == ItemFound || _status == ItemDownloaded)
|
||||
[self setStatus: ItemMissing];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+(NSSet *)keyPathsForValuesAffectingStatusDescription {
|
||||
return [NSSet setWithObjects: @"error", @"status", nil];
|
||||
}
|
||||
@@ -742,27 +854,34 @@ enum {
|
||||
};
|
||||
|
||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
||||
|
||||
if ([menuItem action] == @selector(downloadExtensionChanged:)) return YES;
|
||||
|
||||
SEL action = [menuItem action];
|
||||
if (action == @selector(downloadExtensionChanged:)) return YES;
|
||||
|
||||
DownloadItem *item = [self clickedItem];
|
||||
if (!item) return NO;
|
||||
#if 0
|
||||
NSInteger row = [_tableView clickedRow];
|
||||
if (row < 0) return NO;
|
||||
DownloadItem *item = [[_arrayController arrangedObjects] objectAtIndex: row]; //[_items objectAtIndex: row];
|
||||
|
||||
#endif
|
||||
|
||||
NSUInteger status = [item status];
|
||||
switch([menuItem tag]) {
|
||||
case kOpenInFinder:
|
||||
return status == ItemFound || status == ItemDownloaded;
|
||||
break;
|
||||
case kDownload:
|
||||
return YES;
|
||||
//return status == ItemMissing || status == ItemError || status == ItemCanceled;
|
||||
break;
|
||||
case kCancel:
|
||||
return status == ItemDownloading;
|
||||
break;
|
||||
|
||||
|
||||
if (action == @selector(moveToTrash:)) {
|
||||
return [item localURL] != nil;
|
||||
}
|
||||
if (action == @selector(showInFinder:)) {
|
||||
return [item localURL] != nil;
|
||||
}
|
||||
if (action == @selector(download:)) {
|
||||
return YES;
|
||||
}
|
||||
if (action == @selector(cancel:)) {
|
||||
return status == ItemDownloading;
|
||||
}
|
||||
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
+3
-1
@@ -47,10 +47,12 @@
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.utilities</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2020-2022 Kelvin Sherlock. All rights reserved.</string>
|
||||
<string>Copyright © 2020-2026 Kelvin Sherlock. All rights reserved.</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
||||
+117
-40
@@ -25,10 +25,58 @@ static NSString *kMyContext = @"kMyContext";
|
||||
static NSString *kContextMachine = @"kContextMachine";
|
||||
|
||||
|
||||
static NSString *NeedsAspectRatio(NSString *machine) {
|
||||
static NSDictionary *dict = nil;
|
||||
|
||||
/* these are all non-60hz? */
|
||||
if (!dict) {
|
||||
dict = @{
|
||||
@"c64": @"3:2",
|
||||
@"c64c": @"3:2",
|
||||
@"oric1": @"2:1",
|
||||
@"orica": @"2:1",
|
||||
@"prav8d": @"2:1",
|
||||
@"telstrat": @"2:1",
|
||||
};
|
||||
}
|
||||
return [dict objectForKey: machine];
|
||||
}
|
||||
|
||||
static BOOL NeedsNatural(NSString *machine) {
|
||||
|
||||
static NSSet *set = nil;
|
||||
|
||||
/* these all have really strange keyboards */
|
||||
if (!set) {
|
||||
NSArray *machines = @[
|
||||
@"bbcb", @"bbca", @"bbcb_de", @"bbcb_us", @"bbcb_no", @"bbcbp", @"bbcbp128", @"bbcm", @"bbcmt", @"bbcmc", @"electron",
|
||||
@"c64", @"c64c", @"c128"
|
||||
];
|
||||
set = [NSSet setWithArray: machines];
|
||||
}
|
||||
return [set containsObject: machine];
|
||||
}
|
||||
|
||||
static BOOL HasLayout(NSString *machine) {
|
||||
|
||||
static NSSet *set = nil;
|
||||
|
||||
/* these have a layout which adds 10% to the height. */
|
||||
if (!set) {
|
||||
NSArray *machines = @[
|
||||
@"bbcb", @"bbca", @"bbcb_de", @"bbcb_us", @"bbcb_no", @"bbcbp", @"bbcbp128", @"bbcm", @"bbcmt", @"bbcmc", @"electron",
|
||||
@"vt100", @"vt101", @"vt102", @"vt105", @"vt131", @"vt180"
|
||||
];
|
||||
set = [NSSet setWithArray: machines];
|
||||
}
|
||||
return [set containsObject: machine];
|
||||
}
|
||||
|
||||
@interface LaunchWindowController () {
|
||||
BOOL _loadingBookmark;
|
||||
NSString *_machine;
|
||||
NSDictionary *_machineDescription;
|
||||
BookmarkManager *_manager;
|
||||
}
|
||||
@property (strong) IBOutlet MediaViewController *mediaController;
|
||||
@property (strong) IBOutlet SlotViewController *slotController;
|
||||
@@ -120,6 +168,7 @@ static NSString *EffectsStrings[] = {
|
||||
@"crt-geom",
|
||||
@"crt-geom-deluxe",
|
||||
@"lcd-grid",
|
||||
@"Fighters",
|
||||
};
|
||||
|
||||
|
||||
@@ -189,6 +238,8 @@ static int EffectsIndex(NSString *str) {
|
||||
|
||||
-(void)windowWillLoad {
|
||||
|
||||
_manager = [BookmarkManager sharedManager];
|
||||
|
||||
// if this calls [self window], it will recurse. that is bad.
|
||||
//[self defaultLoad: nil];
|
||||
[self reset];
|
||||
@@ -316,7 +367,7 @@ static NSString * JoinArguments(NSArray *argv, NSString *argv0) {
|
||||
|
||||
if (!safe) {
|
||||
NSString *str =
|
||||
@"%+-./:=_"
|
||||
@"%+-./:=_,"
|
||||
@"0123456789"
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
;
|
||||
@@ -391,7 +442,7 @@ static NSString *ShellQuote(NSString *s) {
|
||||
|
||||
if (!safe) {
|
||||
NSString *str =
|
||||
@"%+-./:=_"
|
||||
@"%+-./:=_,"
|
||||
@"0123456789"
|
||||
@"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
;
|
||||
@@ -459,14 +510,12 @@ static NSString *ShellQuote(NSString *s) {
|
||||
//[argv addObject: @"mame"];
|
||||
[argv addObject: _machine];
|
||||
|
||||
if (_software) {
|
||||
NSString *name = [_softwareSet nameForSoftware: _software];
|
||||
if (name) [argv addObject: name];
|
||||
}
|
||||
|
||||
// -confirm_quit?
|
||||
[argv addObject: @"-skip_gameinfo"];
|
||||
|
||||
// natural keyboard on by default.
|
||||
if (NeedsNatural(_machine))
|
||||
[argv addObject: @"-natural"];
|
||||
|
||||
if (_mameMouse)
|
||||
[argv addObject: @"-mouse"]; // capture the mouse cursor when over the window.
|
||||
@@ -483,6 +532,8 @@ static NSString *ShellQuote(NSString *s) {
|
||||
* for square pixels, should pass the true size and true aspect ratio.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
NSSize screen = [_slotController resolution];
|
||||
switch(_mameWindowMode) {
|
||||
case 0: // full screen;
|
||||
@@ -499,16 +550,26 @@ static NSString *ShellQuote(NSString *s) {
|
||||
// drop through.
|
||||
case 2: // 2x
|
||||
case 3: // 3x
|
||||
|
||||
case 4: // 4x
|
||||
|
||||
if (_mameSquarePixels) {
|
||||
// NSString *aspect = [NSString stringWithFormat: @"%u:%u", (unsigned)screen.width, (unsigned)screen.height];
|
||||
// [argv addObject: @"-aspect"];
|
||||
// [argv addObject: aspect];
|
||||
[argv addObject: @"-nounevenstretch"];
|
||||
|
||||
float hscale = round((screen.width * 3 / 4) / screen.height);
|
||||
if (hscale < 1) hscale = 1;
|
||||
screen.height *= hscale;
|
||||
|
||||
|
||||
} else {
|
||||
screen.height = round(screen.width * 3 / 4);
|
||||
}
|
||||
|
||||
if (HasLayout(_machine)) {
|
||||
screen.height = round(screen.height * 1.1);
|
||||
}
|
||||
|
||||
[argv addObject: @"-window"];
|
||||
NSString *res = [NSString stringWithFormat: @"%ux%u",
|
||||
(unsigned)(_mameWindowMode * screen.width),
|
||||
@@ -517,12 +578,26 @@ static NSString *ShellQuote(NSString *s) {
|
||||
|
||||
[argv addObject: @"-resolution"];
|
||||
[argv addObject: res];
|
||||
if (_mameSquarePixels) {
|
||||
[argv addObject: @"-nounevenstretch"];
|
||||
|
||||
NSString *aspect = NeedsAspectRatio(_machine);
|
||||
if (aspect) {
|
||||
[argv addObject: @"-aspect"];
|
||||
[argv addObject: aspect];
|
||||
}
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if (_mameBGFX) {
|
||||
[argv addObject: @"-video"];
|
||||
[argv addObject: @"bgfx"];
|
||||
|
||||
if (_mameBackend) {
|
||||
[argv addObject: @"-bgfx_backend"];
|
||||
[argv addObject: BackendStrings[_mameBackend]];
|
||||
@@ -552,6 +627,12 @@ static NSString *ShellQuote(NSString *s) {
|
||||
[argv addObjectsFromArray: tmp];
|
||||
}
|
||||
|
||||
// software *AFTER* slots so, eg, apple2ee has access to the superdrive.
|
||||
if (_software) {
|
||||
NSString *name = [_softwareSet nameForSoftware: _software];
|
||||
if (name) [argv addObject: name];
|
||||
}
|
||||
|
||||
if (_mameSpeed < 0) {
|
||||
[argv addObject: @"-nothrottle"];
|
||||
} else if (_mameSpeed > 1) {
|
||||
@@ -730,6 +811,7 @@ static NSString *ShellQuote(NSString *s) {
|
||||
|
||||
-(IBAction)resetAll:(id)sender {
|
||||
|
||||
[_manager setCurrentBookmark: nil];
|
||||
[self reset];
|
||||
[self resetSoftware];
|
||||
[_slotController resetSlots: sender];
|
||||
@@ -778,37 +860,40 @@ static NSString *ShellQuote(NSString *s) {
|
||||
|
||||
-(IBAction)defaultSave:(id)sender {
|
||||
|
||||
#if 0
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
#if 0
|
||||
NSDictionary *d = [self makeBookmark];
|
||||
|
||||
[bm saveDefault: d];
|
||||
[_manager saveDefault: d];
|
||||
#endif
|
||||
}
|
||||
|
||||
-(IBAction)defaultLoad:(id)sender {
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
Bookmark *b = [_manager defaultBookmark];
|
||||
|
||||
NSDictionary *d = [bm loadDefault];
|
||||
if (!d) {
|
||||
if (!b) {
|
||||
[self resetAll: sender];
|
||||
[self setMachine: nil];
|
||||
[_machineViewController reset];
|
||||
[_slotController setMachine: nil];
|
||||
return;
|
||||
}
|
||||
[self loadBookmark: d];
|
||||
[self loadBookmark: b];
|
||||
}
|
||||
|
||||
-(IBAction)updateBookmark: (id)sender {
|
||||
|
||||
Bookmark *b = [sender representedObject];
|
||||
if (!b) return;
|
||||
|
||||
NSDictionary *d = [self makeBookmark];
|
||||
[b setDictionary: d];
|
||||
}
|
||||
|
||||
-(IBAction)addBookmark:(id)sender {
|
||||
|
||||
if (!_machine) return;
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
NSString *name = nil;
|
||||
if (_machineDescription) name = [_machineDescription objectForKey:@"description"];
|
||||
if (!name) name = _machine;
|
||||
@@ -818,7 +903,7 @@ static NSString *ShellQuote(NSString *s) {
|
||||
name = [name stringByAppendingFormat: @" - %@", [_software title]];
|
||||
}
|
||||
|
||||
name = [bm uniqueBookmarkName: name];
|
||||
name = [_manager uniqueBookmarkName: name];
|
||||
|
||||
[self setBookmarkName: name];
|
||||
[self setBookmarkDefault: NO];
|
||||
@@ -835,10 +920,9 @@ static NSString *ShellQuote(NSString *s) {
|
||||
|
||||
-(IBAction)bookmarkSave:(id)sender {
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
#if 0
|
||||
if (![bm validateName: _bookmarkName]) {
|
||||
if (![_manager validateName: _bookmarkName]) {
|
||||
[_bookmarkTextField selectText: nil];
|
||||
NSBeep();
|
||||
return;
|
||||
@@ -848,7 +932,7 @@ static NSString *ShellQuote(NSString *s) {
|
||||
NSDictionary *d = [self makeBookmark];
|
||||
NSError *e;
|
||||
|
||||
if (( e = [bm saveBookmark: d name: _bookmarkName automatic: _bookmarkDefault])) {
|
||||
if (( e = [_manager saveBookmark: d name: _bookmarkName automatic: _bookmarkDefault])) {
|
||||
// probably a duplicate name...
|
||||
[_bookmarkTextField selectText: nil];
|
||||
[_bookmarkErrorField setStringValue: [e localizedDescription]];
|
||||
@@ -865,31 +949,24 @@ static NSString *ShellQuote(NSString *s) {
|
||||
-(void)bookmarkNotification: (NSNotification *)notification {
|
||||
|
||||
Bookmark *b = [notification object];
|
||||
NSDictionary *d = [b dictionary];
|
||||
|
||||
[self loadBookmark: d];
|
||||
[self loadBookmark: b];
|
||||
}
|
||||
|
||||
-(IBAction)bookmarkMenu:(id)sender {
|
||||
|
||||
#if 0
|
||||
NSURL *url = [sender representedObject];
|
||||
if (!url) return;
|
||||
|
||||
NSDictionary *d = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
if (!d) return; // oops...
|
||||
|
||||
#endif
|
||||
|
||||
// represented object is a Bookmark.
|
||||
NSDictionary *d = [(Bookmark *)[sender representedObject] dictionary];
|
||||
[self loadBookmark: d];
|
||||
Bookmark *b = [sender representedObject];
|
||||
[self loadBookmark: b];
|
||||
}
|
||||
|
||||
|
||||
-(void)loadBookmark: (NSDictionary *)d {
|
||||
-(void)loadBookmark: (Bookmark *)b {
|
||||
Class StringClass = [NSString class];
|
||||
Class NumberClass = [NSNumber class];
|
||||
|
||||
|
||||
NSDictionary *d = [b dictionary];
|
||||
|
||||
[_manager setCurrentBookmark: b];
|
||||
|
||||
NSString *machine = [d objectForKey: @"machine"];
|
||||
if (!machine) return;
|
||||
|
||||
@@ -34,7 +34,7 @@ static NSMutableSet *LogWindows;
|
||||
}
|
||||
|
||||
|
||||
+(id)controllerForTask: (NSTask *)task close: (BOOL)close{
|
||||
+(id)controllerForTask: (NSTask *)task close: (BOOL)close {
|
||||
LogWindowController *controller = [[LogWindowController alloc] initWithWindowNibName: @"LogWindow"];
|
||||
[controller runTask: task close: close];
|
||||
return controller;
|
||||
@@ -43,6 +43,8 @@ static NSMutableSet *LogWindows;
|
||||
|
||||
+(id)controllerForArgs: (NSArray *)args close: (BOOL)close {
|
||||
|
||||
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
|
||||
|
||||
NSURL *url = MameURL();
|
||||
|
||||
if (!url) {
|
||||
@@ -65,6 +67,30 @@ static NSMutableSet *LogWindows;
|
||||
|
||||
[task setArguments: args];
|
||||
|
||||
if ([defaults boolForKey: kUseLogWindow] == NO) {
|
||||
|
||||
NSAlert *alert = nil;
|
||||
if (@available(macOS 10.13, *)) {
|
||||
NSError *error = nil;
|
||||
|
||||
[task launchAndReturnError: &error];
|
||||
if (error) {
|
||||
alert = [NSAlert alertWithError: error];
|
||||
}
|
||||
} else {
|
||||
@try {
|
||||
[task launch];
|
||||
} @catch (NSException *exception) {
|
||||
|
||||
alert = [NSAlert new];
|
||||
[alert setMessageText: [exception reason]];
|
||||
}
|
||||
}
|
||||
if (alert) [alert runModal];
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
return [LogWindowController controllerForTask: task close: close];
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,11 @@
|
||||
-(void)awakeFromNib {
|
||||
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
#ifdef AMPLE_LITE
|
||||
NSString *path = [bundle pathForResource: @"models~extra" ofType: @"plist"];
|
||||
#else
|
||||
NSString *path = [bundle pathForResource: @"models" ofType: @"plist"];
|
||||
#endif
|
||||
_data = [NSArray arrayWithContentsOfFile: path];
|
||||
|
||||
|
||||
|
||||
+7
-1
@@ -14,6 +14,7 @@ typedef struct Media {
|
||||
unsigned cass;
|
||||
unsigned cdrom;
|
||||
unsigned hard;
|
||||
unsigned floppy_8;
|
||||
unsigned floppy_5_25;
|
||||
unsigned floppy_3_5;
|
||||
unsigned pseudo_disk;
|
||||
@@ -21,13 +22,17 @@ typedef struct Media {
|
||||
unsigned midiin;
|
||||
unsigned midiout;
|
||||
unsigned picture;
|
||||
uint64_t floppy_mask;
|
||||
unsigned rom;
|
||||
uint64_t floppy_mask_8;
|
||||
uint64_t floppy_mask_5_25;
|
||||
uint64_t floppy_mask_3_5;
|
||||
} Media;
|
||||
|
||||
|
||||
typedef enum {
|
||||
MediaTypeError = -1,
|
||||
MediaTypeUnknown = 0,
|
||||
MediaType_8,
|
||||
MediaType_5_25,
|
||||
MediaType_3_5,
|
||||
MediaType_HardDisk,
|
||||
@@ -35,6 +40,7 @@ typedef enum {
|
||||
MediaType_Cassette,
|
||||
MediaType_Picture,
|
||||
MediaType_MIDI,
|
||||
MediaType_ROM,
|
||||
} MediaType;
|
||||
|
||||
struct Media MediaFromDictionary(NSDictionary *);
|
||||
|
||||
+87
-10
@@ -21,11 +21,13 @@ struct Media MediaFromDictionary(NSDictionary *dict) {
|
||||
_(hard);
|
||||
_(floppy_3_5);
|
||||
_(floppy_5_25);
|
||||
_(floppy_8);
|
||||
_(pseudo_disk);
|
||||
_(bitbanger);
|
||||
_(midiin);
|
||||
_(midiout);
|
||||
_(picture);
|
||||
_(rom);
|
||||
|
||||
return m;
|
||||
#undef _
|
||||
@@ -37,8 +39,9 @@ void MediaAdd(Media *dest, const Media *src) {
|
||||
|
||||
// could merge from src media but not currently set there.
|
||||
|
||||
unsigned count;
|
||||
unsigned flops = dest->floppy_5_25 + dest->floppy_3_5;
|
||||
//unsigned count;
|
||||
unsigned dest_flops = dest->floppy_8 + dest->floppy_5_25 + dest->floppy_3_5;
|
||||
unsigned src_flops = src->floppy_8 || src->floppy_5_25 || src->floppy_3_5;
|
||||
|
||||
|
||||
#define _(name) dest->name += src->name;
|
||||
@@ -47,21 +50,34 @@ void MediaAdd(Media *dest, const Media *src) {
|
||||
_(hard);
|
||||
_(floppy_3_5);
|
||||
_(floppy_5_25);
|
||||
_(floppy_8);
|
||||
_(pseudo_disk);
|
||||
_(bitbanger);
|
||||
_(midiin);
|
||||
_(midiout);
|
||||
_(picture);
|
||||
_(rom);
|
||||
#undef _
|
||||
|
||||
|
||||
if ((count = src->floppy_5_25)) {
|
||||
uint64_t bits = (1 << count) - 1;
|
||||
//dest->floppy_mask <<= count;
|
||||
bits <<= flops;
|
||||
dest->floppy_mask |= bits;
|
||||
}
|
||||
// this assumes any device that supports more than 1 floppy size
|
||||
// the order is 8" < 5.25" < 3.5"
|
||||
|
||||
if (src_flops) {
|
||||
uint64_t bits = 1 << dest_flops;
|
||||
for (unsigned i = 0; i < src->floppy_8; ++i) {
|
||||
dest->floppy_mask_8 |= bits;
|
||||
bits <<= 1;
|
||||
}
|
||||
for (unsigned i = 0; i < src->floppy_5_25; ++i) {
|
||||
dest->floppy_mask_5_25 |= bits;
|
||||
bits <<= 1;
|
||||
}
|
||||
for (unsigned i = 0; i < src->floppy_3_5; ++i) {
|
||||
dest->floppy_mask_3_5 |= bits;
|
||||
bits <<= 1;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -76,13 +92,17 @@ BOOL MediaEqual(const Media *lhs, const Media *rhs) {
|
||||
_(hard);
|
||||
_(floppy_3_5);
|
||||
_(floppy_5_25);
|
||||
_(floppy_8);
|
||||
_(pseudo_disk);
|
||||
_(bitbanger);
|
||||
_(midiin);
|
||||
_(midiout);
|
||||
_(picture);
|
||||
_(rom);
|
||||
|
||||
_(floppy_mask);
|
||||
_(floppy_mask_8);
|
||||
_(floppy_mask_5_25);
|
||||
_(floppy_mask_3_5);
|
||||
|
||||
return YES;
|
||||
#undef _
|
||||
@@ -151,7 +171,8 @@ static BOOL is_raw_35(size_t disk_size) {
|
||||
if (disk_size & 511) return NO;
|
||||
size_t blocks = disk_size >> 9;
|
||||
|
||||
return blocks == 800 || blocks == 1600 || blocks == 1440 || blocks == 2880;
|
||||
// atari st has 360 (single sided) and 720 (double-sided) disks..
|
||||
return blocks == 800 || blocks == 1600 || blocks == 1440 || blocks == 2880 || blocks == 720 || blocks == 360;
|
||||
}
|
||||
|
||||
static MediaType is_woz(const uint8_t *buffer, size_t file_size) {
|
||||
@@ -216,7 +237,29 @@ static MediaType is_chd(const uint8_t *buffer, size_t file_size) {
|
||||
return MediaTypeError;
|
||||
}
|
||||
|
||||
static MediaType is_ipf(const uint8_t *buffer, size_t file_size) {
|
||||
// http://justsolve.archiveteam.org/wiki/IPF
|
||||
if (!memcmp(buffer, "CAPS\x00\x00\x00", 7)) return MediaType_3_5;
|
||||
return MediaTypeUnknown;
|
||||
}
|
||||
|
||||
static MediaType is_hxcf(const uint8_t *buffer, size_t file_size) {
|
||||
// HxCFloppyEmulator
|
||||
if (!memcmp(buffer, "HXCMFM", 6)) return MediaType_3_5;
|
||||
return MediaTypeUnknown;
|
||||
}
|
||||
|
||||
static MediaType is_msa(const uint8_t *buffer, size_t file_size) {
|
||||
// Atari MSA
|
||||
if (!memcmp(buffer, "\x0x\x0f", 2)) return MediaType_3_5;
|
||||
return MediaTypeUnknown;
|
||||
}
|
||||
|
||||
static MediaType is_pasti(const uint8_t *buffer, size_t file_size) {
|
||||
// Atari STX/Pasti
|
||||
if (!memcmp(buffer, "RSY\x00\x03\x00", 6)) return MediaType_3_5;
|
||||
return MediaTypeUnknown;
|
||||
}
|
||||
|
||||
MediaType ClassifyMediaFile(id file) {
|
||||
|
||||
@@ -298,6 +341,40 @@ MediaType ClassifyMediaFile(id file) {
|
||||
case _x3('m', 'i', 'd'):
|
||||
return MediaType_MIDI;
|
||||
|
||||
|
||||
// atari st, etc, 3.5 disk?
|
||||
// http://justsolve.archiveteam.org/wiki/Disk_Image_Formats
|
||||
|
||||
case _x3('i', 'p', 'f'):
|
||||
return is_ipf(buffer, st.st_size);
|
||||
|
||||
case _x3('m', 'f', 'm'):
|
||||
return is_hxcf(buffer, st.st_size);
|
||||
|
||||
case _x3('m', 's', 'a'):
|
||||
return is_msa(buffer, st.st_size);
|
||||
|
||||
case _x2('s', 't'):
|
||||
if (is_raw_35(st.st_size)) return MediaType_3_5;
|
||||
return MediaTypeUnknown;
|
||||
|
||||
case _x3('s', 't', 'x'): // pasti
|
||||
return is_pasti(buffer, st.st_size);
|
||||
|
||||
//case _x3('m', 'f', 'i'): // mame/mess floppy image [???]
|
||||
//case _x3('d', 'f', 'i'): // disc ferret image
|
||||
//case _x3('h', 'f', 'e'): // ???
|
||||
//case _x3('t', 'd', '0'): // teledisk - may be split across multiple files (.td1, .td2, ...)
|
||||
//case _x3('i', 'm', 'd'): // imagedisk
|
||||
//case _x3('d', '7', '7'): //pc-88, may have multiple disk images
|
||||
//case _x3('d', '8', '8'): //fm-77, may have multiple disk images.
|
||||
//case _x3('1', 'd', 'd'): // related?
|
||||
//case _x3('c', 'q', 'm'): // copyQM
|
||||
//case _x3('c', 'q', 'i'): // copyQM
|
||||
|
||||
case _x3('r', 'o', 'm'):
|
||||
case _x3('b', 'i', 'n'):
|
||||
return MediaType_ROM;
|
||||
}
|
||||
|
||||
return MediaTypeUnknown;
|
||||
|
||||
+32
-29
@@ -321,6 +321,7 @@
|
||||
if (first) return;
|
||||
first++;
|
||||
|
||||
_data[kIndexFloppy8] = [MediaCategory categoryWithTitle: @"8\" Floppies"];
|
||||
_data[kIndexFloppy525] = [MediaCategory categoryWithTitle: @"5.25\" Floppies"];
|
||||
_data[kIndexFloppy35] = [MediaCategory categoryWithTitle: @"3.5\" Floppies"];
|
||||
_data[kIndexHardDrive] = [MediaCategory categoryWithTitle: @"Hard Drives"];
|
||||
@@ -332,6 +333,7 @@
|
||||
_data[kIndexMidiIn] = [MediaCategory categoryWithTitle: @"MIDI (In)"];
|
||||
_data[kIndexMidiOut] = [MediaCategory categoryWithTitle: @"MIDI (Out)"];
|
||||
_data[kIndexPicture] = [MediaCategory categoryWithTitle: @"Picture"];
|
||||
_data[kIndexROM] = [MediaCategory categoryWithTitle: @"ROM"];
|
||||
|
||||
for (unsigned i = 0; i < CATEGORY_COUNT; ++i) {
|
||||
[_data[i] setCategory: i];
|
||||
@@ -339,7 +341,6 @@
|
||||
}
|
||||
|
||||
_root = [NSMutableArray new];
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -347,45 +348,49 @@
|
||||
-(void)rebuildArgs {
|
||||
|
||||
static char* prefix[] = {
|
||||
"flop", "flop", "hard", "cdrm", "cass", "disk", "bitb", "min", "mout", "pic"
|
||||
"flop", "flop", "flop", "hard", "cdrm", "cass", "disk", "bitb", "min", "mout", "pic", "rom",
|
||||
};
|
||||
static_assert(SIZEOF(prefix) == CATEGORY_COUNT, "Missing item");
|
||||
NSMutableArray *args = [NSMutableArray new];
|
||||
|
||||
//unsigned counts[CATEGORY_COUNT] = { 0 };
|
||||
|
||||
uint64_t floppy_mask_8 = _media.floppy_mask_8;
|
||||
uint64_t floppy_mask_5_25 = _media.floppy_mask_5_25;
|
||||
uint64_t floppy_mask_3_5 = _media.floppy_mask_3_5;
|
||||
|
||||
for (unsigned j = 0; j < CATEGORY_COUNT; ++j) {
|
||||
|
||||
uint64_t floppy_mask = _media.floppy_mask;
|
||||
//uint64_t floppy_mask = _media.floppy_mask;
|
||||
unsigned index = 0;
|
||||
|
||||
MediaCategory *cat = _data[j];
|
||||
NSInteger valid = [cat validCount];
|
||||
|
||||
for (NSInteger i = 0; i < valid; ++i) {
|
||||
|
||||
MediaItem *item = [cat objectAtIndex: i];
|
||||
NSString *arg = [item argument];
|
||||
|
||||
|
||||
if (j == kIndexFloppy525) {
|
||||
// assumes < 64 floppies....
|
||||
// infinite loop if no floppy device...
|
||||
if (floppy_mask == 0) break;
|
||||
while ((floppy_mask & 0x01) == 0) {
|
||||
floppy_mask >>= 1;
|
||||
switch(j) {
|
||||
case kIndexFloppy8:
|
||||
index = ffsll(floppy_mask_8);
|
||||
floppy_mask_8 &= ~(1 << (index-1));
|
||||
break;
|
||||
case kIndexFloppy525:
|
||||
index = ffsll(floppy_mask_5_25);
|
||||
floppy_mask_5_25 &= ~(1 << (index-1));
|
||||
break;
|
||||
case kIndexFloppy35:
|
||||
index = ffsll(floppy_mask_3_5);
|
||||
floppy_mask_3_5 &= ~(1 << (index-1));
|
||||
break;
|
||||
default:
|
||||
++index;
|
||||
}
|
||||
} else if (j == kIndexFloppy35) {
|
||||
while ((floppy_mask & 0x01)) {
|
||||
floppy_mask >>= 1;
|
||||
++index;
|
||||
}
|
||||
}
|
||||
|
||||
++index;
|
||||
floppy_mask >>= 1;
|
||||
if (!arg) continue;
|
||||
|
||||
if (!index) continue;
|
||||
|
||||
[args addObject: [NSString stringWithFormat: @"-%s%u", prefix[j], index]];
|
||||
[args addObject: arg];
|
||||
}
|
||||
@@ -439,19 +444,13 @@ x = media.name; cat = _data[index]; delta |= [cat setItemCount: x]
|
||||
_(hard, kIndexHardDrive);
|
||||
_(floppy_3_5, kIndexFloppy35);
|
||||
_(floppy_5_25, kIndexFloppy525);
|
||||
_(floppy_8, kIndexFloppy8);
|
||||
_(pseudo_disk, kIndexDiskImage);
|
||||
_(bitbanger, kIndexBitBanger);
|
||||
// disable midi for now - it's either a midi file (which auto-plays too soon to be useful)
|
||||
// or a midi device ("default" for first one).
|
||||
// So we should build a device list (and pre-populate the default one)
|
||||
// another approach is a separate utility to act as a midi/serial input converter
|
||||
// and midi file / serial converter so the modem/serial port could be used.
|
||||
#if 1
|
||||
_(midiin, kIndexMidiIn);
|
||||
_(midiout, kIndexMidiOut);
|
||||
#endif
|
||||
_(picture, kIndexPicture);
|
||||
|
||||
_(rom, kIndexROM);
|
||||
|
||||
if (delta) {
|
||||
[self rebuildRoot];
|
||||
@@ -765,6 +764,7 @@ static NSString *kDragType = @"private.ample.media";
|
||||
|
||||
switch(tag) {
|
||||
|
||||
case kIndexFloppy8:
|
||||
case kIndexFloppy525:
|
||||
case kIndexFloppy35:
|
||||
case kIndexHardDrive:
|
||||
@@ -782,6 +782,7 @@ static NSString *kDragType = @"private.ample.media";
|
||||
case kIndexMidiIn:
|
||||
case kIndexMidiOut:
|
||||
case kIndexBitBanger:
|
||||
case kIndexROM:
|
||||
default: break;
|
||||
}
|
||||
|
||||
@@ -831,11 +832,13 @@ static NSString *kDragType = @"private.ample.media";
|
||||
switch(mt) {
|
||||
case MediaType_3_5: ix = kIndexFloppy35; break;
|
||||
case MediaType_5_25: ix = kIndexFloppy525; break;
|
||||
case MediaType_8: ix = kIndexFloppy8; break;
|
||||
case MediaType_Cassette: ix = kIndexCassette; break;
|
||||
case MediaType_HardDisk: ix = kIndexHardDrive; break;
|
||||
case MediaType_CDROM: ix = kIndexCDROM; break;
|
||||
|
||||
case MediaType_Picture: ix = kIndexPicture; break;
|
||||
case MediaType_ROM: ix = kIndexROM; break;
|
||||
case MediaType_MIDI: // ix = kIndexMidiIn; break;
|
||||
case MediaTypeError:
|
||||
case MediaTypeUnknown:
|
||||
@@ -873,7 +876,7 @@ static NSString *kDragType = @"private.ample.media";
|
||||
}
|
||||
|
||||
static NSString * BookmarkStrings[] = {
|
||||
@"flop_525", @"flop_35", @"hard", @"cdrm", @"cass", @"disk", @"bitb", @"midiin", @"midiout", @"pic"
|
||||
@"flop_8", @"flop_525", @"flop_35", @"hard", @"cdrm", @"cass", @"disk", @"bitb", @"midiin", @"midiout", @"pic", @"rom",
|
||||
};
|
||||
static_assert(SIZEOF(BookmarkStrings) == CATEGORY_COUNT, "Missing item");
|
||||
|
||||
|
||||
@@ -27,7 +27,11 @@
|
||||
first++;
|
||||
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
#ifdef AMPLE_LITE
|
||||
NSString *path = [bundle pathForResource: @"models~extra" ofType: @"plist"];
|
||||
#else
|
||||
NSString *path = [bundle pathForResource: @"models" ofType: @"plist"];
|
||||
#endif
|
||||
_data = [NSArray arrayWithContentsOfFile: path];
|
||||
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@
|
||||
<td>Quit</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><kbd>P</kbd></td>
|
||||
<td><kbd>F5</kbd></td>
|
||||
<td>Pause</td>
|
||||
</tr>
|
||||
|
||||
@@ -166,8 +166,7 @@
|
||||
<td><kbd>Shift</kbd>+<kbd>F3</kbd></td>
|
||||
<td>Hard reset</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<!--
|
||||
<tr>
|
||||
<td><kbd>F5</kbd></td>
|
||||
<td>Toggle debugger</td>
|
||||
@@ -176,15 +175,17 @@
|
||||
<td><kbd>Shift</kbd>+<kbd>F5</kbd></td>
|
||||
<td>Toggle graphic filters</td>
|
||||
</tr>
|
||||
-->
|
||||
<tr>
|
||||
<td><kbd>Shift</kbd>+<kbd>F6</kbd></td>
|
||||
<td>Create save state</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td><kbd>F7</kbd></td>
|
||||
<td>Load state</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><kbd>Shift</kbd>+<kbd>F7</kbd></td>
|
||||
<td>Save state</td>
|
||||
<td>Load save state</td>
|
||||
</tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td><kbd>F10</kbd></td>
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
+5555
-1319
File diff suppressed because it is too large.
Load diff
+470
-29
@@ -12,7 +12,7 @@
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>560</integer>
|
||||
<integer>384</integer>
|
||||
<integer>192</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -73,7 +73,7 @@
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II analog joysticks</string>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
@@ -81,7 +81,7 @@
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II paddles</string>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
@@ -123,6 +123,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -131,11 +139,35 @@
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
@@ -147,19 +179,11 @@
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -167,7 +191,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -175,7 +199,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
@@ -184,11 +208,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
@@ -245,6 +277,14 @@
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
@@ -313,6 +353,259 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>adaptator_multitap</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p2</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_imaginator_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rev12</string>
|
||||
<key>description</key>
|
||||
<string>GPC Rev. 1.2 P/N 9000-0002</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>unknown</string>
|
||||
<key>description</key>
|
||||
<string>GPC Unknown revision</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_watz_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Watzman</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman-a</string>
|
||||
<key>description</key>
|
||||
<string>Watzman w/clock persists after reset</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs232_patch_box</string>
|
||||
@@ -331,6 +624,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -339,11 +640,35 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -355,19 +680,11 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -375,7 +692,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -383,7 +700,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -392,11 +709,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -453,6 +778,122 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scorpion_ic</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>61203</string>
|
||||
<key>description</key>
|
||||
<string>Version 61203 (3rd Dec 1986)</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>serial_heath_h19</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:tlbc</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>heath</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>imaginator</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Cleveland Codonics Imaginator I-100</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gp19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Northwest Digital Systems GP-19</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>super19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Super19 ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superset</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Superset ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ultrarom</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Ultra ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Watzman ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
+376
-41
@@ -14,7 +14,7 @@
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>512</integer>
|
||||
<integer>512</integer>
|
||||
<integer>256</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -37,6 +37,41 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v1</string>
|
||||
<key>description</key>
|
||||
<string>Version 1</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v2</string>
|
||||
<key>description</key>
|
||||
<string>Version 2</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>debug</string>
|
||||
<key>description</key>
|
||||
<string>Debug</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sl2</string>
|
||||
@@ -56,7 +91,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -64,7 +99,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -72,14 +107,9 @@
|
||||
<key>value</key>
|
||||
<string>a7fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat-7 140K floppy card</string>
|
||||
<string>Agat-7 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -128,7 +158,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -136,7 +166,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -144,16 +174,11 @@
|
||||
<key>value</key>
|
||||
<string>a7fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat-7 140K floppy card</string>
|
||||
<string>Agat-7 140K Floppy Card</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -200,7 +225,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -208,7 +233,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -216,14 +241,9 @@
|
||||
<key>value</key>
|
||||
<string>a7fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat-7 140K floppy card</string>
|
||||
<string>Agat-7 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -272,7 +292,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -280,7 +300,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -288,14 +308,9 @@
|
||||
<key>value</key>
|
||||
<string>a7fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat-7 140K floppy card</string>
|
||||
<string>Agat-7 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -342,7 +357,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -350,7 +365,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -358,14 +373,9 @@
|
||||
<key>value</key>
|
||||
<string>a7fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat-7 140K floppy card</string>
|
||||
<string>Agat-7 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -395,6 +405,39 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>gameio</string>
|
||||
<key>description</key>
|
||||
<string>Game I/O</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
@@ -448,6 +491,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>digiblst</string>
|
||||
<key>description</key>
|
||||
<string>Digiblaster (DIY)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ap2000</string>
|
||||
@@ -464,6 +515,22 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>fx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson FX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>jx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson JX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lx800</string>
|
||||
@@ -480,6 +547,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson RX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>p72</string>
|
||||
@@ -496,6 +571,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nlq401</string>
|
||||
<key>description</key>
|
||||
<string>Schneider NLQ 401 Matrix Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>chessmec</string>
|
||||
@@ -512,6 +595,258 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>adaptator</string>
|
||||
<key>description</key>
|
||||
<string>The Adaptator 2x DE-9 Multitap</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>adaptator_multitap</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p2</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>agat7_flop</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:0</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
+454
-97
@@ -14,7 +14,7 @@
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>512</integer>
|
||||
<integer>512</integer>
|
||||
<integer>256</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -37,6 +37,35 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v1</string>
|
||||
<key>description</key>
|
||||
<string>Version 1</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v2</string>
|
||||
<key>description</key>
|
||||
<string>Version 2</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sl1</string>
|
||||
@@ -56,7 +85,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -64,7 +93,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -80,27 +109,17 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -131,7 +150,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -139,7 +158,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -155,27 +174,17 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -206,7 +215,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -214,7 +223,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -230,27 +239,17 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -281,7 +280,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -289,7 +288,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -305,27 +304,17 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -356,7 +345,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -364,7 +353,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
@@ -382,27 +371,17 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -433,7 +412,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdchle</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy card</string>
|
||||
<string>Agat 840K Floppy Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat840k_hle</string>
|
||||
</dict>
|
||||
@@ -441,7 +420,7 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc</string>
|
||||
<key>description</key>
|
||||
<string>Agat 840K floppy controller card</string>
|
||||
<string>Agat 840K Floppy Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>agat_fdc</string>
|
||||
</dict>
|
||||
@@ -457,29 +436,19 @@
|
||||
<key>value</key>
|
||||
<string>a9fdc140</string>
|
||||
<key>description</key>
|
||||
<string>Agat-9 140K floppy card</string>
|
||||
<string>Agat-9 140K Floppy Card</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>diskii</string>
|
||||
<string>diskiing</string>
|
||||
<key>description</key>
|
||||
<string>Apple Disk II controller</string>
|
||||
<string>Apple Disk II NG Controller (16-sector)</string>
|
||||
<key>devname</key>
|
||||
<string>a2diskii</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
@@ -491,9 +460,105 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>gameio</string>
|
||||
<key>description</key>
|
||||
<string>Game I/O</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2diskiing</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:0</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a7ports</string>
|
||||
@@ -544,6 +609,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>digiblst</string>
|
||||
<key>description</key>
|
||||
<string>Digiblaster (DIY)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ap2000</string>
|
||||
@@ -560,6 +633,22 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>fx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson FX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>jx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson JX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lx800</string>
|
||||
@@ -576,6 +665,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rx80</string>
|
||||
<key>description</key>
|
||||
<string>Epson RX-80</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>p72</string>
|
||||
@@ -592,6 +689,14 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nlq401</string>
|
||||
<key>description</key>
|
||||
<string>Schneider NLQ 401 Matrix Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>chessmec</string>
|
||||
@@ -608,6 +713,258 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>adaptator</string>
|
||||
<key>description</key>
|
||||
<string>The Adaptator 2x DE-9 Multitap</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>adaptator_multitap</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:joy_p2</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Digital joystick</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>wheel</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Driving Wheel</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Dual paddles</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keypad</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>lp</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Light Pen</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mouse</string>
|
||||
<key>description</key>
|
||||
<string>Atari / CBM Mouse</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>trakball</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX22/CX80 Trak-Ball</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cx85</string>
|
||||
<key>description</key>
|
||||
<string>Atari CX85 Numeric Keypad</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joybstr</string>
|
||||
<key>description</key>
|
||||
<string>CBS Electronics Booster-Grip Joystick Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>agat9_flop</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:0</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
+4243
-724
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
@@ -12,7 +12,7 @@
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>560</integer>
|
||||
<integer>384</integer>
|
||||
<integer>192</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -164,7 +164,7 @@
|
||||
<key>value</key>
|
||||
<string>cassette</string>
|
||||
<key>description</key>
|
||||
<string>Apple I cassette board</string>
|
||||
<string>Apple I Cassette Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
@@ -179,7 +179,7 @@
|
||||
<key>value</key>
|
||||
<string>cffa</string>
|
||||
<key>description</key>
|
||||
<string>CFFA Compact Flash for Apple I</string>
|
||||
<string>CFFA Compact Flash For Apple I</string>
|
||||
<key>devname</key>
|
||||
<string>cffa1</string>
|
||||
</dict>
|
||||
@@ -232,6 +232,30 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>zip100</string>
|
||||
<key>description</key>
|
||||
<string>Iomega Zip 100MB IDE Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cr589</string>
|
||||
<key>description</key>
|
||||
<string>Matsushita CR589 CD-ROM Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>xm3301</string>
|
||||
<key>description</key>
|
||||
<string>Toshiba XM-3301 CD-ROM Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -273,6 +297,84 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>zip100</string>
|
||||
<key>description</key>
|
||||
<string>Iomega Zip 100MB IDE Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cr589</string>
|
||||
<key>description</key>
|
||||
<string>Matsushita CR589 CD-ROM Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>xm3301</string>
|
||||
<key>description</key>
|
||||
<string>Toshiba XM-3301 CD-ROM Drive</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>px320a</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v106</string>
|
||||
<key>description</key>
|
||||
<string>Firmware v1.06</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v105</string>
|
||||
<key>description</key>
|
||||
<string>Firmware v1.05</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v104</string>
|
||||
<key>description</key>
|
||||
<string>Firmware v1.04a</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v103</string>
|
||||
<key>description</key>
|
||||
<string>Firmware v1.03</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v102</string>
|
||||
<key>description</key>
|
||||
<string>Firmware v1.02</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
+4272
-724
File diff suppressed because it is too large.
Load diff
+342
-63
@@ -12,7 +12,7 @@
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>560</integer>
|
||||
<integer>384</integer>
|
||||
<integer>192</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -73,7 +73,7 @@
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II analog joysticks</string>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
@@ -81,31 +81,10 @@
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II paddles</string>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>compeyes</string>
|
||||
<key>description</key>
|
||||
<string>Digital Vision ComputerEyes</string>
|
||||
<key>devname</key>
|
||||
<string>a2ceyes</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>picture</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gizmo</string>
|
||||
<key>description</key>
|
||||
<string>HAL Labs Gizmo</string>
|
||||
<key>devname</key>
|
||||
<string>a2gizmo</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -123,6 +102,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -131,11 +118,35 @@
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
@@ -147,19 +158,11 @@
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -167,7 +170,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -175,7 +178,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
@@ -184,11 +187,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
@@ -245,6 +256,14 @@
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -262,6 +281,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -270,11 +297,35 @@
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
@@ -286,19 +337,11 @@
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -306,7 +349,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -314,7 +357,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
@@ -323,11 +366,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
@@ -384,6 +435,14 @@
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
@@ -452,6 +511,78 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_imaginator_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rev12</string>
|
||||
<key>description</key>
|
||||
<string>GPC Rev. 1.2 P/N 9000-0002</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>unknown</string>
|
||||
<key>description</key>
|
||||
<string>GPC Unknown revision</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_watz_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Watzman</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman-a</string>
|
||||
<key>description</key>
|
||||
<string>Watzman w/clock persists after reset</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs232_patch_box</string>
|
||||
@@ -470,6 +601,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -478,11 +617,35 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -494,19 +657,11 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -514,7 +669,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -522,7 +677,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -531,11 +686,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -592,6 +755,122 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scorpion_ic</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>61203</string>
|
||||
<key>description</key>
|
||||
<string>Version 61203 (3rd Dec 1986)</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>serial_heath_h19</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:tlbc</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>heath</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>imaginator</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Cleveland Codonics Imaginator I-100</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gp19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Northwest Digital Systems GP-19</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>super19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Super19 ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superset</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Superset ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ultrarom</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Ultra ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Watzman ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
@@ -0,0 +1,961 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>apple2c0</string>
|
||||
<key>description</key>
|
||||
<string>Apple //c (UniDisk 3.5)</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
</dict>
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>560</integer>
|
||||
<integer>192</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ramsize</string>
|
||||
<key>description</key>
|
||||
<string>RAM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>intValue</key>
|
||||
<integer>131072</integer>
|
||||
<key>description</key>
|
||||
<string>128K</string>
|
||||
<key>value</key>
|
||||
<string>128K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>smartport</string>
|
||||
<key>description</key>
|
||||
<string>Disk Drives</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string></string>
|
||||
<key>devname</key>
|
||||
<string>smartport</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>gameio</string>
|
||||
<key>description</key>
|
||||
<string>Game I/O</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Printer</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
<key>description</key>
|
||||
<string>IE15 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs_printer</string>
|
||||
<key>description</key>
|
||||
<string>Radio Shack Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keyboard</string>
|
||||
<key>description</key>
|
||||
<string>Serial Keyboard</string>
|
||||
<key>devname</key>
|
||||
<string>serial_keyboard</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>terminal</string>
|
||||
<key>description</key>
|
||||
<string>Serial Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>serial_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>sunkbd</string>
|
||||
<key>description</key>
|
||||
<string>Sun Keyboard Adaptor</string>
|
||||
<key>devname</key>
|
||||
<string>sunkbd_adaptor</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mockingboard</string>
|
||||
<key>description</key>
|
||||
<string>Sweet Micro Systems Mockingboard D</string>
|
||||
<key>devname</key>
|
||||
<string>mockingboardd</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>swtpc8212</string>
|
||||
<key>description</key>
|
||||
<string>SWTPC8212 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>modem</string>
|
||||
<key>description</key>
|
||||
<string>Modem</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
<key>description</key>
|
||||
<string>IE15 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs_printer</string>
|
||||
<key>description</key>
|
||||
<string>Radio Shack Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keyboard</string>
|
||||
<key>description</key>
|
||||
<string>Serial Keyboard</string>
|
||||
<key>devname</key>
|
||||
<string>serial_keyboard</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>terminal</string>
|
||||
<key>description</key>
|
||||
<string>Serial Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>serial_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>sunkbd</string>
|
||||
<key>description</key>
|
||||
<string>Sun Keyboard Adaptor</string>
|
||||
<key>devname</key>
|
||||
<string>sunkbd_adaptor</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mockingboard</string>
|
||||
<key>description</key>
|
||||
<string>Sweet Micro Systems Mockingboard D</string>
|
||||
<key>devname</key>
|
||||
<string>mockingboardd</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>swtpc8212</string>
|
||||
<key>description</key>
|
||||
<string>SWTPC8212 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>smartport</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sl6:0</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sl6:1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_imaginator_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rev12</string>
|
||||
<key>description</key>
|
||||
<string>GPC Rev. 1.2 P/N 9000-0002</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>unknown</string>
|
||||
<key>description</key>
|
||||
<string>GPC Unknown revision</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_watz_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Watzman</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman-a</string>
|
||||
<key>description</key>
|
||||
<string>Watzman w/clock persists after reset</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs232_patch_box</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:dce</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
<key>description</key>
|
||||
<string>IE15 Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs_printer</string>
|
||||
<key>description</key>
|
||||
<string>Radio Shack Serial Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keyboard</string>
|
||||
<key>description</key>
|
||||
<string>Serial Keyboard</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Serial Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>terminal</string>
|
||||
<key>description</key>
|
||||
<string>Serial Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>sunkbd</string>
|
||||
<key>description</key>
|
||||
<string>Sun Keyboard Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mockingboard</string>
|
||||
<key>description</key>
|
||||
<string>Sweet Micro Systems Mockingboard D</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>swtpc8212</string>
|
||||
<key>description</key>
|
||||
<string>SWTPC8212 Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scorpion_ic</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>61203</string>
|
||||
<key>description</key>
|
||||
<string>Version 61203 (3rd Dec 1986)</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>serial_heath_h19</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:tlbc</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>heath</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>imaginator</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Cleveland Codonics Imaginator I-100</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gp19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Northwest Digital Systems GP-19</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>super19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Super19 ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superset</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Superset ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ultrarom</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Ultra ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Watzman ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sunkbd_adaptor</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:keyboard</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type3hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 3 Keyboard (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type4hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 4 Keyboard (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5gbhle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Great Britain - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5jphle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Japan - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5sehle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Sweden - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (U.S.A. - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>software</key>
|
||||
<array>
|
||||
<string>apple2_flop_clcracked.xml</string>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>apple2_flop_orig.xml</string>
|
||||
<key>filter</key>
|
||||
<string>A2C</string>
|
||||
</dict>
|
||||
<string>apple2_flop_misc.xml</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+532
-67
@@ -8,15 +8,11 @@
|
||||
<string>Apple //c Plus</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>2</integer>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>2</integer>
|
||||
</dict>
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>560</integer>
|
||||
<integer>384</integer>
|
||||
<integer>192</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
@@ -79,6 +75,25 @@
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>smartport</string>
|
||||
<key>description</key>
|
||||
<string>Disk Drives</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string></string>
|
||||
<key>devname</key>
|
||||
<string>smartport</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>gameio</string>
|
||||
@@ -98,7 +113,7 @@
|
||||
<key>value</key>
|
||||
<string>joy</string>
|
||||
<key>description</key>
|
||||
<string>Apple II analog joysticks</string>
|
||||
<string>Apple II Analog Joysticks</string>
|
||||
<key>devname</key>
|
||||
<string>a2joy</string>
|
||||
</dict>
|
||||
@@ -106,31 +121,10 @@
|
||||
<key>value</key>
|
||||
<string>paddles</string>
|
||||
<key>description</key>
|
||||
<string>Apple II paddles</string>
|
||||
<string>Apple II Paddles</string>
|
||||
<key>devname</key>
|
||||
<string>a2pdls</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>compeyes</string>
|
||||
<key>description</key>
|
||||
<string>Digital Vision ComputerEyes</string>
|
||||
<key>devname</key>
|
||||
<string>a2ceyes</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>picture</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gizmo</string>
|
||||
<key>description</key>
|
||||
<string>HAL Labs Gizmo</string>
|
||||
<key>devname</key>
|
||||
<string>a2gizmo</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -148,6 +142,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -156,11 +158,35 @@
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
@@ -172,19 +198,11 @@
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -192,7 +210,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -200,7 +218,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
@@ -209,11 +227,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
@@ -270,6 +296,14 @@
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
@@ -287,6 +321,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -295,11 +337,35 @@
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
@@ -311,19 +377,11 @@
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -331,7 +389,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
@@ -339,7 +397,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
@@ -348,11 +406,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
@@ -409,11 +475,262 @@
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>smartport</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>fdc:0</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>fdc:1</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>525</string>
|
||||
<key>description</key>
|
||||
<string>5.25"</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_5_25</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>fdc:2</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35hd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" HD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35sd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" SD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>fdc:3</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35hd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" HD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>35sd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" SD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>floppy_3_5</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_imaginator_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rev12</string>
|
||||
<key>description</key>
|
||||
<string>GPC Rev. 1.2 P/N 9000-0002</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>unknown</string>
|
||||
<key>description</key>
|
||||
<string>GPC Unknown revision</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_watz_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Watzman</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman-a</string>
|
||||
<key>description</key>
|
||||
<string>Watzman w/clock persists after reset</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs232_patch_box</string>
|
||||
@@ -432,6 +749,14 @@
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
@@ -440,11 +765,35 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo terminal</string>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -456,19 +805,11 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback</string>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -476,7 +817,7 @@
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Loopback (DEC 12-15336-00)</string>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
@@ -484,7 +825,7 @@
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Null Modem</string>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -493,11 +834,19 @@
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS232 Synchronous I/O</string>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
@@ -554,6 +903,122 @@
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scorpion_ic</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>61203</string>
|
||||
<key>description</key>
|
||||
<string>Version 61203 (3rd Dec 1986)</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>serial_heath_h19</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:tlbc</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>heath</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>imaginator</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Cleveland Codonics Imaginator I-100</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gp19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Northwest Digital Systems GP-19</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>super19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Super19 ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superset</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Superset ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ultrarom</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Ultra ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Watzman ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
||||
+6059
-1451
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+6059
-1451
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+6059
-1451
File diff suppressed because it is too large.
Load diff
+6059
-1451
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+6059
-1451
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+6060
-1452
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+6059
-1451
File diff suppressed because it is too large.
Load diff
+5629
-1428
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+5629
-1428
File diff suppressed because it is too large.
Load diff
+5629
-1428
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
+837
-32
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,726 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>bbca</string>
|
||||
<key>description</key>
|
||||
<string>BBC Micro Model A</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>cass</key>
|
||||
<integer>1</integer>
|
||||
<key>rom</key>
|
||||
<integer>4</integer>
|
||||
</dict>
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>640</integer>
|
||||
<integer>256</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ramsize</string>
|
||||
<key>description</key>
|
||||
<string>RAM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>intValue</key>
|
||||
<integer>16384</integer>
|
||||
<key>description</key>
|
||||
<string>16K</string>
|
||||
<key>value</key>
|
||||
<string>16K</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>intValue</key>
|
||||
<integer>32768</integer>
|
||||
<key>description</key>
|
||||
<string>32K</string>
|
||||
<key>value</key>
|
||||
<string>32K</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>120</string>
|
||||
<key>description</key>
|
||||
<string>OS 1.20</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>100</string>
|
||||
<key>description</key>
|
||||
<string>OS 1.00</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>092</string>
|
||||
<key>description</key>
|
||||
<string>OS 0.92</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>010</string>
|
||||
<key>description</key>
|
||||
<string>OS 0.10</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs423</string>
|
||||
<key>description</key>
|
||||
<string>Serial</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_heath_h19</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
<key>description</key>
|
||||
<string>IE15 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>ie15_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>devname</key>
|
||||
<string>scorpion_ic</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_mouse_hle_msystems</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>devname</key>
|
||||
<string>nss_tvinterface</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>pseudo_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs_printer</string>
|
||||
<key>description</key>
|
||||
<string>Radio Shack Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>rs_serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>devname</key>
|
||||
<string>dec_rs232_loopback</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>devname</key>
|
||||
<string>null_modem</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_patch_box</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>devname</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keyboard</string>
|
||||
<key>description</key>
|
||||
<string>Serial Keyboard</string>
|
||||
<key>devname</key>
|
||||
<string>serial_keyboard</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Serial Printer</string>
|
||||
<key>devname</key>
|
||||
<string>serial_printer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>terminal</string>
|
||||
<key>description</key>
|
||||
<string>Serial Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>serial_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>sunkbd</string>
|
||||
<key>description</key>
|
||||
<string>Sun Keyboard Adaptor</string>
|
||||
<key>devname</key>
|
||||
<string>sunkbd_adaptor</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mockingboard</string>
|
||||
<key>description</key>
|
||||
<string>Sweet Micro Systems Mockingboard D</string>
|
||||
<key>devname</key>
|
||||
<string>mockingboardd</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>swtpc8212</string>
|
||||
<key>description</key>
|
||||
<string>SWTPC8212 Terminal</string>
|
||||
<key>devname</key>
|
||||
<string>swtpc8212_terminal</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>devname</key>
|
||||
<string>serial_votraxtnt</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_imaginator_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rev12</string>
|
||||
<key>description</key>
|
||||
<string>GPC Rev. 1.2 P/N 9000-0002</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>unknown</string>
|
||||
<key>description</key>
|
||||
<string>GPC Unknown revision</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>heath_watz_tlb</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Watzman</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman-a</string>
|
||||
<key>description</key>
|
||||
<string>Watzman w/clock persists after reset</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>rs232_patch_box</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:dce</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>h19</string>
|
||||
<key>description</key>
|
||||
<string>Heath H19 Terminal (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ie15</string>
|
||||
<key>description</key>
|
||||
<string>IE15 Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>scorpion</string>
|
||||
<key>description</key>
|
||||
<string>Micro-Robotics Scorpion Intelligent Controller</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>msystems_mouse</string>
|
||||
<key>description</key>
|
||||
<string>Mouse Systems Non-rotatable Mouse (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>nss_tvi</string>
|
||||
<key>description</key>
|
||||
<string>Novag Super System TV Interface</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>pty</string>
|
||||
<key>description</key>
|
||||
<string>Pseudo Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs_printer</string>
|
||||
<key>description</key>
|
||||
<string>Radio Shack Serial Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>dec_loopback</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Loopback (DEC 12-15336-00)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>null_modem</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Null Modem</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>patch</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Patch Box</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>rs232_sync_io</string>
|
||||
<key>description</key>
|
||||
<string>RS-232 Synchronous I/O</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>bitbanger</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>keyboard</string>
|
||||
<key>description</key>
|
||||
<string>Serial Keyboard</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>printer</string>
|
||||
<key>description</key>
|
||||
<string>Serial Printer</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>terminal</string>
|
||||
<key>description</key>
|
||||
<string>Serial Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>sunkbd</string>
|
||||
<key>description</key>
|
||||
<string>Sun Keyboard Adaptor</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>mockingboard</string>
|
||||
<key>description</key>
|
||||
<string>Sweet Micro Systems Mockingboard D</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>swtpc8212</string>
|
||||
<key>description</key>
|
||||
<string>SWTPC8212 Terminal</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>votraxtnt</string>
|
||||
<key>description</key>
|
||||
<string>Votrax Type 'N Talk (Serial Port)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>scorpion_ic</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>61203</string>
|
||||
<key>description</key>
|
||||
<string>Version 61203 (3rd Dec 1986)</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>serial_heath_h19</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:tlbc</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>heath</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>imaginator</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Cleveland Codonics Imaginator I-100</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>gp19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board plus Northwest Digital Systems GP-19</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>super19</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Super19 ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superset</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Superset ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>ultrarom</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Ultra ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>watzman</string>
|
||||
<key>description</key>
|
||||
<string>Heath Terminal Logic Board w/Watzman ROM</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>sunkbd_adaptor</string>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>:keyboard</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type3hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 3 Keyboard (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type4hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 4 Keyboard (HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5gbhle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Great Britain - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5jphle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Japan - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5sehle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (Sweden - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>type5hle</string>
|
||||
<key>description</key>
|
||||
<string>Sun Type 5 Keyboard (U.S.A. - HLE)</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>software</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bbc_cass.xml</string>
|
||||
<key>filter</key>
|
||||
<string>A</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bbc_rom.xml</string>
|
||||
<key>filter</key>
|
||||
<string>B</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+5807
-1385
File diff suppressed because it is too large.
Load diff
+5807
-1385
File diff suppressed because it is too large.
Load diff
+5807
-1385
File diff suppressed because it is too large.
Load diff
+5842
-1385
File diff suppressed because it is too large.
Load diff
+5807
-1385
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
+4243
-724
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,129 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>cz101</string>
|
||||
<key>description</key>
|
||||
<string>CZ-101</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
</dict>
|
||||
<key>resolution</key>
|
||||
<array>
|
||||
<integer>97</integer>
|
||||
<integer>38</integer>
|
||||
</array>
|
||||
<key>slots</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>ramsize</string>
|
||||
<key>description</key>
|
||||
<string>RAM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>bios</string>
|
||||
<key>description</key>
|
||||
<string>ROM</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—Default—</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v2</string>
|
||||
<key>description</key>
|
||||
<string>Version II</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>v1</string>
|
||||
<key>description</key>
|
||||
<string>Version I</string>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>mdin</string>
|
||||
<key>description</key>
|
||||
<string>MIDI In</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>midiin</string>
|
||||
<key>description</key>
|
||||
<string>MIDI In port</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
<string>midiin_port</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>midiin</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>mdout</string>
|
||||
<key>description</key>
|
||||
<string>MIDI Out</string>
|
||||
<key>options</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string></string>
|
||||
<key>description</key>
|
||||
<string>—None—</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>midiout</string>
|
||||
<key>description</key>
|
||||
<string>MIDI Out port</string>
|
||||
<key>default</key>
|
||||
<true/>
|
||||
<key>devname</key>
|
||||
<string>midiout_port</string>
|
||||
<key>media</key>
|
||||
<dict>
|
||||
<key>midiout</key>
|
||||
<integer>1</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>devices</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>software</key>
|
||||
<array>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
File diff suppressed because it is too large.
Load diff
Loaded 100 of 297 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user