mirror of https://github.com/ksherlock/ample.git
- Move bookmarks and disk images to core data
- bookmark edit window - rom window now shows machine description, tooltip is name - fix split floppy logic to work with a2superdrive - fix software list loading from default - mame 241 machine updates
This commit is contained in:
parent
7633887391
commit
0616991a1b
|
@ -273,6 +273,20 @@
|
|||
B6E4B5F024FDE2670094A35C /* apple2jp.plist in Resources */ = {isa = PBXBuildFile; fileRef = B61099F224F5F36F005CB652 /* apple2jp.plist */; };
|
||||
B6E4B5F124FDE2670094A35C /* apple2.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0324F5F371005CB652 /* apple2.plist */; };
|
||||
B6E4B5F224FDE2670094A35C /* prav8m.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A0024F5F371005CB652 /* prav8m.plist */; };
|
||||
B6E6DCEB27AEE15F00E0A76E /* Ample.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCE927AEE15F00E0A76E /* Ample.xcdatamodeld */; };
|
||||
B6E6DCEC27AEE15F00E0A76E /* Ample.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCE927AEE15F00E0A76E /* Ample.xcdatamodeld */; };
|
||||
B6E6DCF727B0873200E0A76E /* BookmarkWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E6DCF527B0873100E0A76E /* BookmarkWindow.xib */; };
|
||||
B6E6DCF827B0873200E0A76E /* BookmarkWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E6DCF527B0873100E0A76E /* BookmarkWindow.xib */; };
|
||||
B6E6DCFB27B0A09300E0A76E /* BookmarkWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCFA27B0A09300E0A76E /* BookmarkWindowController.m */; };
|
||||
B6E6DCFC27B0A09300E0A76E /* BookmarkWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCFA27B0A09300E0A76E /* BookmarkWindowController.m */; };
|
||||
B6E6DD0127B0D17C00E0A76E /* Bookmark+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCFF27B0D17C00E0A76E /* Bookmark+CoreDataClass.m */; };
|
||||
B6E6DD0227B0D17C00E0A76E /* Bookmark+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DCFF27B0D17C00E0A76E /* Bookmark+CoreDataClass.m */; };
|
||||
B6E6DD0327B0D17C00E0A76E /* Bookmark+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD0027B0D17C00E0A76E /* Bookmark+CoreDataProperties.m */; };
|
||||
B6E6DD0427B0D17C00E0A76E /* Bookmark+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD0027B0D17C00E0A76E /* Bookmark+CoreDataProperties.m */; };
|
||||
B6E6DD1327B1D71700E0A76E /* DiskImage+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD1127B1D71700E0A76E /* DiskImage+CoreDataClass.m */; };
|
||||
B6E6DD1427B1D71700E0A76E /* DiskImage+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD1127B1D71700E0A76E /* DiskImage+CoreDataClass.m */; };
|
||||
B6E6DD1527B1D71700E0A76E /* DiskImage+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD1227B1D71700E0A76E /* DiskImage+CoreDataProperties.m */; };
|
||||
B6E6DD1627B1D71700E0A76E /* DiskImage+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E6DD1227B1D71700E0A76E /* DiskImage+CoreDataProperties.m */; };
|
||||
B6E9A18025088B1B005E7525 /* SlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E9A17F25088B1B005E7525 /* SlotViewController.m */; };
|
||||
B6E9A18325088B36005E7525 /* SlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E9A18125088B36005E7525 /* SlotView.xib */; };
|
||||
B6F7B538266FDA5B00624C6B /* MachineView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6F7B536266FDA5B00624C6B /* MachineView.xib */; };
|
||||
|
@ -504,6 +518,20 @@
|
|||
B6DE32422605482500418375 /* mac512k.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mac512k.plist; sourceTree = "<group>"; };
|
||||
B6DE32432605482500418375 /* macse.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macse.plist; sourceTree = "<group>"; };
|
||||
B6E4B5FA24FDE2670094A35C /* Ample Lite.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Ample Lite.app"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
B6E6DCEA27AEE15F00E0A76E /* Ample.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Ample.xcdatamodel; sourceTree = "<group>"; };
|
||||
B6E6DCF627B0873100E0A76E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/BookmarkWindow.xib; sourceTree = "<group>"; };
|
||||
B6E6DCF927B0A09300E0A76E /* BookmarkWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookmarkWindowController.h; sourceTree = "<group>"; };
|
||||
B6E6DCFA27B0A09300E0A76E /* BookmarkWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookmarkWindowController.m; sourceTree = "<group>"; };
|
||||
B6E6DCFD27B0D17C00E0A76E /* Bookmark+CoreDataProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Bookmark+CoreDataProperties.h"; sourceTree = "<group>"; };
|
||||
B6E6DCFE27B0D17C00E0A76E /* Bookmark+CoreDataClass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Bookmark+CoreDataClass.h"; sourceTree = "<group>"; };
|
||||
B6E6DCFF27B0D17C00E0A76E /* Bookmark+CoreDataClass.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Bookmark+CoreDataClass.m"; sourceTree = "<group>"; };
|
||||
B6E6DD0027B0D17C00E0A76E /* Bookmark+CoreDataProperties.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Bookmark+CoreDataProperties.m"; sourceTree = "<group>"; };
|
||||
B6E6DD0E27B161C400E0A76E /* Bookmark.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Bookmark.h; path = Ample/Bookmark.h; sourceTree = SOURCE_ROOT; };
|
||||
B6E6DD0F27B1D71700E0A76E /* DiskImage+CoreDataProperties.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DiskImage+CoreDataProperties.h"; sourceTree = "<group>"; };
|
||||
B6E6DD1027B1D71700E0A76E /* DiskImage+CoreDataClass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "DiskImage+CoreDataClass.h"; sourceTree = "<group>"; };
|
||||
B6E6DD1127B1D71700E0A76E /* DiskImage+CoreDataClass.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "DiskImage+CoreDataClass.m"; sourceTree = "<group>"; };
|
||||
B6E6DD1227B1D71700E0A76E /* DiskImage+CoreDataProperties.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "DiskImage+CoreDataProperties.m"; sourceTree = "<group>"; };
|
||||
B6E6DD1727B1DF5F00E0A76E /* DiskImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskImage.h; sourceTree = "<group>"; };
|
||||
B6E9A17E25088B1B005E7525 /* SlotViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SlotViewController.h; sourceTree = "<group>"; };
|
||||
B6E9A17F25088B1B005E7525 /* SlotViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SlotViewController.m; sourceTree = "<group>"; };
|
||||
B6E9A18225088B36005E7525 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SlotView.xib; sourceTree = "<group>"; };
|
||||
|
@ -711,6 +739,7 @@
|
|||
B6BA257D24E99BE9005FB8FF /* Ample */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6E6DD0527B160D400E0A76E /* Core Data */,
|
||||
B6665C12265A0E3E00254939 /* AutocompleteControl.h */,
|
||||
B6665C13265A0E3E00254939 /* AutocompleteControl.m */,
|
||||
B6BA257E24E99BE9005FB8FF /* AppDelegate.h */,
|
||||
|
@ -718,6 +747,8 @@
|
|||
B63C1B8924FF4B7100511A71 /* Ample.h */,
|
||||
B635C09E26784D4700B23BFD /* AmpleLite.m */,
|
||||
B63C1B8A24FF4BF700511A71 /* Ample.m */,
|
||||
B6E6DD0E27B161C400E0A76E /* Bookmark.h */,
|
||||
B6E6DD1727B1DF5F00E0A76E /* DiskImage.h */,
|
||||
B64AF1F4250ED5E400A09B9B /* TableCellView.h */,
|
||||
B64AF1F5250ED5E400A09B9B /* TableCellView.m */,
|
||||
B6152B5425F4549F00605E6E /* Slot.h */,
|
||||
|
@ -764,6 +795,8 @@
|
|||
B6BA563A251685DA00B0C47D /* Window Controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6E6DCF927B0A09300E0A76E /* BookmarkWindowController.h */,
|
||||
B6E6DCFA27B0A09300E0A76E /* BookmarkWindowController.m */,
|
||||
B64AF1F0250ECB2E00A09B9B /* DiskImagesWindowController.h */,
|
||||
B64AF1F1250ECB2E00A09B9B /* DiskImagesWindowController.m */,
|
||||
B63C1B9125008A2700511A71 /* DownloadWindowController.h */,
|
||||
|
@ -784,6 +817,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
B6665C1A265C639900254939 /* Autocomplete.xib */,
|
||||
B6E6DCF527B0873100E0A76E /* BookmarkWindow.xib */,
|
||||
B6E9A18125088B36005E7525 /* SlotView.xib */,
|
||||
B6F7B536266FDA5B00624C6B /* MachineView.xib */,
|
||||
B63C1B9325008A2700511A71 /* DownloadWindow.xib */,
|
||||
|
@ -818,6 +852,22 @@
|
|||
path = images;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6E6DD0527B160D400E0A76E /* Core Data */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
B6E6DCE927AEE15F00E0A76E /* Ample.xcdatamodeld */,
|
||||
B6E6DCFE27B0D17C00E0A76E /* Bookmark+CoreDataClass.h */,
|
||||
B6E6DCFF27B0D17C00E0A76E /* Bookmark+CoreDataClass.m */,
|
||||
B6E6DCFD27B0D17C00E0A76E /* Bookmark+CoreDataProperties.h */,
|
||||
B6E6DD0027B0D17C00E0A76E /* Bookmark+CoreDataProperties.m */,
|
||||
B6E6DD1027B1D71700E0A76E /* DiskImage+CoreDataClass.h */,
|
||||
B6E6DD1127B1D71700E0A76E /* DiskImage+CoreDataClass.m */,
|
||||
B6E6DD0F27B1D71700E0A76E /* DiskImage+CoreDataProperties.h */,
|
||||
B6E6DD1227B1D71700E0A76E /* DiskImage+CoreDataProperties.m */,
|
||||
);
|
||||
path = "Core Data";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
@ -964,6 +1014,7 @@
|
|||
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
|
||||
B63C1F0B25B143C50016A611 /* CheatSheet.xib in Resources */,
|
||||
B6109A3324F5F377005CB652 /* apple2eeuk.plist in Resources */,
|
||||
B6E6DCF727B0873200E0A76E /* BookmarkWindow.xib in Resources */,
|
||||
B6374ADB260ECB400045CA16 /* maciix.plist in Resources */,
|
||||
B6109A2424F5F377005CB652 /* las128ex.plist in Resources */,
|
||||
B618B8C42729F6690045C2D8 /* laser128o.plist in Resources */,
|
||||
|
@ -1078,6 +1129,7 @@
|
|||
B6665C1D265C639A00254939 /* Autocomplete.xib in Resources */,
|
||||
B6E4B5C124FDE2670094A35C /* apple1.plist in Resources */,
|
||||
B6E4B5C224FDE2670094A35C /* ace100.plist in Resources */,
|
||||
B6E6DCF827B0873200E0A76E /* BookmarkWindow.xib in Resources */,
|
||||
B6374AD6260ECB400045CA16 /* maciisi.plist in Resources */,
|
||||
B6DE32472605482500418375 /* macclasc.plist in Resources */,
|
||||
B6E4B5C324FDE2670094A35C /* am64.plist in Resources */,
|
||||
|
@ -1225,9 +1277,13 @@
|
|||
files = (
|
||||
B608E17F2502FE0C00D53465 /* TransparentScroller.m in Sources */,
|
||||
B6E9A18025088B1B005E7525 /* SlotViewController.m in Sources */,
|
||||
B6E6DD1527B1D71700E0A76E /* DiskImage+CoreDataProperties.m in Sources */,
|
||||
B6A1A1942528EB1700DB0FD7 /* Menu.m in Sources */,
|
||||
B6E6DD1327B1D71700E0A76E /* DiskImage+CoreDataClass.m in Sources */,
|
||||
B6E6DD0127B0D17C00E0A76E /* Bookmark+CoreDataClass.m in Sources */,
|
||||
B6BA258824E99BEB005FB8FF /* main.m in Sources */,
|
||||
B63C1B8B24FF4BF700511A71 /* Ample.m in Sources */,
|
||||
B6E6DCFB27B0A09300E0A76E /* BookmarkWindowController.m in Sources */,
|
||||
B6B9EA662506A5550080E70D /* EjectButton.m in Sources */,
|
||||
B6152B5A25F5B57E00605E6E /* Media.m in Sources */,
|
||||
B6152B5625F4549F00605E6E /* Slot.m in Sources */,
|
||||
|
@ -1238,6 +1294,7 @@
|
|||
B68A899026BE18E000B2C8C6 /* MidiManager.m in Sources */,
|
||||
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */,
|
||||
B6004DF024FB05D600D38596 /* LogWindowController.m in Sources */,
|
||||
B6E6DD0327B0D17C00E0A76E /* Bookmark+CoreDataProperties.m in Sources */,
|
||||
B63005332666D6940014C381 /* BookmarkManager.m in Sources */,
|
||||
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */,
|
||||
B63C1F0F25B1447C0016A611 /* CheatSheetWindowController.m in Sources */,
|
||||
|
@ -1245,6 +1302,7 @@
|
|||
B6F7B53C267017A200624C6B /* NewMachineViewController.m in Sources */,
|
||||
B64AF1F6250ED5E400A09B9B /* TableCellView.m in Sources */,
|
||||
B66D0FE72611386C000902F1 /* SoftwareList.m in Sources */,
|
||||
B6E6DCEB27AEE15F00E0A76E /* Ample.xcdatamodeld in Sources */,
|
||||
B63C1B9425008A2700511A71 /* DownloadWindowController.m in Sources */,
|
||||
B64AF1FA250EF6A500A09B9B /* Transformers.m in Sources */,
|
||||
);
|
||||
|
@ -1259,16 +1317,22 @@
|
|||
B64AF1FB250EF6A500A09B9B /* Transformers.m in Sources */,
|
||||
B6E4B5B024FDE2670094A35C /* main.m in Sources */,
|
||||
B63C1F1025B1447C0016A611 /* CheatSheetWindowController.m in Sources */,
|
||||
B6E6DD1427B1D71700E0A76E /* DiskImage+CoreDataClass.m in Sources */,
|
||||
B63C1B8C24FF4BF700511A71 /* Ample.m in Sources */,
|
||||
B64AF1F3250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
|
||||
B6E6DCEC27AEE15F00E0A76E /* Ample.xcdatamodeld in Sources */,
|
||||
B6B9EA672506A5550080E70D /* EjectButton.m in Sources */,
|
||||
B6A1A1952528EB1700DB0FD7 /* Menu.m in Sources */,
|
||||
B6152B5B25F5B57E00605E6E /* Media.m in Sources */,
|
||||
B6E4B5B124FDE2670094A35C /* LaunchWindowController.m in Sources */,
|
||||
B6152B5725F4549F00605E6E /* Slot.m in Sources */,
|
||||
B6E4B5B324FDE2670094A35C /* MediaViewController.m in Sources */,
|
||||
B6E6DCFC27B0A09300E0A76E /* BookmarkWindowController.m in Sources */,
|
||||
B6E6DD1627B1D71700E0A76E /* DiskImage+CoreDataProperties.m in Sources */,
|
||||
B64AF1F7250ED5E400A09B9B /* TableCellView.m in Sources */,
|
||||
B6E4B5B424FDE2670094A35C /* FlippedView.m in Sources */,
|
||||
B6E6DD0227B0D17C00E0A76E /* Bookmark+CoreDataClass.m in Sources */,
|
||||
B6E6DD0427B0D17C00E0A76E /* Bookmark+CoreDataProperties.m in Sources */,
|
||||
B63005342666D6940014C381 /* BookmarkManager.m in Sources */,
|
||||
B615A9A026640A70001FBF99 /* SlotViewController.m in Sources */,
|
||||
B6665C15265A0E3E00254939 /* AutocompleteControl.m in Sources */,
|
||||
|
@ -1349,6 +1413,14 @@
|
|||
name = LaunchWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6E6DCF527B0873100E0A76E /* BookmarkWindow.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
B6E6DCF627B0873100E0A76E /* Base */,
|
||||
);
|
||||
name = BookmarkWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
B6E9A18125088B36005E7525 /* SlotView.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
@ -1656,6 +1728,19 @@
|
|||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
|
||||
/* Begin XCVersionGroup section */
|
||||
B6E6DCE927AEE15F00E0A76E /* Ample.xcdatamodeld */ = {
|
||||
isa = XCVersionGroup;
|
||||
children = (
|
||||
B6E6DCEA27AEE15F00E0A76E /* Ample.xcdatamodel */,
|
||||
);
|
||||
currentVersion = B6E6DCEA27AEE15F00E0A76E /* Ample.xcdatamodel */;
|
||||
path = Ample.xcdatamodeld;
|
||||
sourceTree = "<group>";
|
||||
versionGroupType = wrapper.xcdatamodel;
|
||||
};
|
||||
/* End XCVersionGroup section */
|
||||
};
|
||||
rootObject = B6BA257324E99BE9005FB8FF /* Project object */;
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ extern NSString *kDefaultDownloadExtension;
|
|||
|
||||
extern NSString *kNotificationDiskImageAdded;
|
||||
extern NSString *kNotificationDiskImageMagicRoute;
|
||||
extern NSString *kNotificationBookmarkMagicRoute;
|
||||
|
||||
@protocol Bookmark <NSObject>
|
||||
-(BOOL)loadBookmark: (NSDictionary *)bookmark;
|
||||
|
|
|
@ -138,3 +138,4 @@ NSString *kDownloadExtension = @"DownloadExtension";
|
|||
|
||||
NSString *kNotificationDiskImageAdded = @"Disk Image Added";
|
||||
NSString *kNotificationDiskImageMagicRoute = @"Disk Image Magic Route";
|
||||
NSString *kNotificationBookmarkMagicRoute = @"Bookmark Magic Route";
|
||||
|
|
|
@ -11,6 +11,6 @@
|
|||
@interface AppDelegate : NSObject <NSApplicationDelegate>
|
||||
|
||||
- (IBAction)displayPreferences:(id)sender;
|
||||
|
||||
- (IBAction)manageBookmarks: (id)sender;
|
||||
@end
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@
|
|||
#import "DownloadWindowController.h"
|
||||
#import "DiskImagesWindowController.h"
|
||||
#import "CheatSheetWindowController.h"
|
||||
#import "BookmarkWindowController.h"
|
||||
|
||||
#import "Transformers.h"
|
||||
#import "BookmarkManager.h"
|
||||
|
||||
|
@ -28,6 +30,8 @@
|
|||
NSWindowController *_downloader;
|
||||
NSWindowController *_diskImages;
|
||||
NSWindowController *_cheatSheet;
|
||||
NSWindowController *_bookmarks;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -41,9 +45,7 @@
|
|||
|
||||
RegisterTransformers();
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
[bm loadBookmarks];
|
||||
[bm updateMenu];
|
||||
//BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
path = [bundle pathForResource: @"Defaults" ofType: @"plist"];
|
||||
dict = [NSDictionary dictionaryWithContentsOfFile: path];
|
||||
|
@ -53,17 +55,17 @@
|
|||
[[NSUserDefaults standardUserDefaults] registerDefaults: dict];
|
||||
}
|
||||
|
||||
|
||||
|
||||
_diskImages = [DiskImagesWindowController sharedInstance]; //[DiskImagesWindowController new];
|
||||
|
||||
if ([self installMameComponents]) {
|
||||
|
||||
[self displayLaunchWindow];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
-(void)displayLaunchWindow {
|
||||
|
||||
if (!_launcher) {
|
||||
|
@ -146,6 +148,7 @@
|
|||
|
||||
- (void)applicationWillTerminate:(NSNotification *)aNotification {
|
||||
// Insert code here to tear down your application
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender {
|
||||
|
@ -226,6 +229,13 @@
|
|||
}
|
||||
|
||||
|
||||
- (IBAction)manageBookmarks: (id)sender {
|
||||
|
||||
if (!_bookmarks) {
|
||||
_bookmarks = [BookmarkWindowController new];
|
||||
}
|
||||
[_bookmarks showWindow: sender];
|
||||
}
|
||||
|
||||
|
||||
@end
|
||||
|
|
|
@ -0,0 +1,226 @@
|
|||
<?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">
|
||||
<dependencies>
|
||||
<deployment identifier="macosx"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15705"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="BookmarkWindowController">
|
||||
<connections>
|
||||
<outlet property="arrayController" destination="7gA-MI-adT" id="XJ0-qj-ho5"/>
|
||||
<outlet property="bookmarkManager" destination="Ryd-Nr-sPf" id="LM4-IP-ehb"/>
|
||||
<outlet property="tableView" destination="mkQ-pQ-kXu" id="jqC-GF-vrE"/>
|
||||
<outlet property="window" destination="QvC-M9-y7g" id="ovK-qY-XrZ"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="Bookmarks" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="QvC-M9-y7g">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="400" height="450"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="450"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="cgh-jG-i97">
|
||||
<rect key="frame" x="-1" y="-1" width="402" height="452"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" id="xDr-v4-sVR">
|
||||
<rect key="frame" x="1" y="0.0" width="400" height="451"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="firstColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" headerView="hmS-CB-Huq" viewBased="YES" id="mkQ-pQ-kXu">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="426"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="241" minWidth="40" maxWidth="1000" id="U9x-dw-Kd3">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Name">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="jIY-mU-1gw">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="name"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="R8h-Wj-cHA">
|
||||
<rect key="frame" x="1" y="1" width="241" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cIh-ya-lB0">
|
||||
<rect key="frame" x="0.0" y="0.0" width="241" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" title="Table View Cell" id="a7b-vf-Kzd">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="R8h-Wj-cHA" name="value" keyPath="objectValue.name" id="UWc-85-Ghw">
|
||||
<dictionary key="options">
|
||||
<bool key="NSValidatesImmediately" value="YES"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="cIh-ya-lB0" id="DMK-Kc-RpK"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn editable="NO" width="100" minWidth="100" maxWidth="100" id="fvh-YG-X9R">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Machine">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="waa-dh-M0V">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="compare:" sortKey="machine"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="LUd-BZ-Kpw">
|
||||
<rect key="frame" x="245" y="1" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Qd-Zj-XZi">
|
||||
<rect key="frame" x="0.0" y="0.0" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="ztJ-V1-N1t">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="LUd-BZ-Kpw" name="value" keyPath="objectValue.machine" id="IYK-LP-fHo"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="4Qd-Zj-XZi" id="u3u-3q-Vc2"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn editable="NO" width="50" minWidth="50" maxWidth="50" id="rmr-1r-2Cb">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Default">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="zuw-8H-5ck">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="compare:" sortKey="automatic"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="f3C-qX-bVY">
|
||||
<rect key="frame" x="348" y="1" width="50" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LzD-ps-EdD">
|
||||
<rect key="frame" x="17" y="1" width="16" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyDown" image="NSStatusAvailable" id="kH7-IH-D1y"/>
|
||||
<connections>
|
||||
<binding destination="f3C-qX-bVY" name="hidden" keyPath="objectValue.automatic" id="izX-1f-EU8">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">NSNegateBoolean</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="imageView" destination="LzD-ps-EdD" id="hef-CI-Ly8"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<action trigger="doubleAction" selector="doubleClick:" target="-2" id="VaT-3X-cCf"/>
|
||||
<binding destination="7gA-MI-adT" name="content" keyPath="arrangedObjects" id="5So-FR-r94"/>
|
||||
<outlet property="dataSource" destination="-2" id="kso-yU-XdI"/>
|
||||
<outlet property="delegate" destination="-2" id="Lyf-Wr-8w0"/>
|
||||
<outlet property="menu" destination="cH2-L7-ScC" id="3MS-Tc-P04"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="O1o-6N-F5z">
|
||||
<rect key="frame" x="-100" y="-100" width="223" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="3n8-lN-RGL">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" id="hmS-CB-Huq">
|
||||
<rect key="frame" x="0.0" y="0.0" width="400" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-2" id="4OM-KB-CAh"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-72" y="91"/>
|
||||
</window>
|
||||
<arrayController mode="entity" entityName="Bookmark" automaticallyPreparesContent="YES" preservesSelection="NO" selectsInsertedObjects="NO" avoidsEmptySelection="NO" clearsFilterPredicateOnInsertion="NO" automaticallyRearrangesObjects="YES" id="7gA-MI-adT">
|
||||
<connections>
|
||||
<binding destination="Ryd-Nr-sPf" name="managedObjectContext" keyPath="managedObjectContext" id="hMi-JG-LQC"/>
|
||||
<binding destination="-2" name="selectionIndexes" keyPath="tableView.selectedRowIndexes" id="dyb-Wv-Duo"/>
|
||||
<binding destination="-2" name="sortDescriptors" keyPath="tableView.sortDescriptors" previousBinding="dyb-Wv-Duo" id="fkc-Yv-ZLN"/>
|
||||
</connections>
|
||||
</arrayController>
|
||||
<customObject id="Ryd-Nr-sPf" customClass="BookmarkManager"/>
|
||||
<menu id="cH2-L7-ScC">
|
||||
<items>
|
||||
<menuItem title="Set Default" id="JGR-HC-oCO">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="setDefault:" target="-2" id="QQK-aI-l2p"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Clear Default" id="ulz-3z-Pgl">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="clearDefault:" target="-2" id="mIc-UM-kj0"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Delete" id="B7V-fY-Cbe">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="deleteBookmark:" target="-2" id="zQl-vg-Eg4"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-2" id="raV-YO-2UW"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="355" y="-28"/>
|
||||
</menu>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSStatusAvailable" width="16" height="16"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -8,132 +8,17 @@
|
|||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="DiskImagesWindowController">
|
||||
<connections>
|
||||
<outlet property="arrayController" destination="vmp-9h-Z5R" id="WYF-Xq-BnN"/>
|
||||
<outlet property="tableView" destination="J5l-1d-030" id="3hU-ho-1ag"/>
|
||||
<outlet property="window" destination="R7r-B9-Bw0" id="hDE-Qa-m4g"/>
|
||||
<outlet property="arrayController" destination="YmL-8S-msS" id="Pva-sz-XFI"/>
|
||||
<outlet property="tableView" destination="cqO-ig-A9t" id="hbI-ho-WYj"/>
|
||||
<outlet property="window" destination="AtY-lA-KIp" id="aaq-cR-kq8"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="Recent Disk Images" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" frameAutosaveName="RecentDiskImagesWindow" animationBehavior="default" titlebarAppearsTransparent="YES" id="R7r-B9-Bw0" customClass="NSPanel">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" rightStrut="YES"/>
|
||||
<rect key="contentRect" x="200" y="172" width="300" height="400"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
|
||||
<view key="contentView" focusRingType="none" id="Kkg-Tp-4m1">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="400"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<scrollView focusRingType="none" fixedFrame="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="24" horizontalPageScroll="10" verticalLineScroll="24" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" findBarPosition="belowContent" translatesAutoresizingMaskIntoConstraints="NO" id="ivr-XT-BPS">
|
||||
<rect key="frame" x="-1" y="-1" width="302" height="402"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" id="1jn-uc-06s">
|
||||
<rect key="frame" x="0.0" y="0.0" width="302" height="402"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView focusRingType="none" verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" emptySelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="22" rowSizeStyle="automatic" viewBased="YES" id="J5l-1d-030">
|
||||
<rect key="frame" x="0.0" y="0.0" width="302" height="402"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="282" minWidth="40" maxWidth="1000" id="1rF-M3-pYV">
|
||||
<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>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="erY-fh-OHK">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="AJH-gH-E8G">
|
||||
<rect key="frame" x="1" y="1" width="282" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="esO-OR-AcY">
|
||||
<rect key="frame" x="6" y="5" width="196" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" title="Image Name.2mg" id="xgc-u7-sFX">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="AJH-gH-E8G" name="value" keyPath="objectValue.path" id="S0h-hl-OPM">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">FilePathTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="AJH-gH-E8G" name="toolTip" keyPath="objectValue.path" id="gXq-2p-MpM"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" textCompletion="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Wzl-mV-Pmp">
|
||||
<rect key="frame" x="206" y="3" width="75" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingMiddle" sendsActionOnEndEditing="YES" alignment="right" title="32MB" id="QYB-us-igD">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="AJH-gH-E8G" name="value" keyPath="objectValue.size" id="omG-8X-flx">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">FileSizeTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="esO-OR-AcY" id="9mX-Yt-vpg"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="vmp-9h-Z5R" name="value" keyPath="arrangedObjects.selection" id="32X-Ez-K7S"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<action trigger="doubleAction" selector="doubleClick:" target="-2" id="Zud-ke-iLR"/>
|
||||
<binding destination="vmp-9h-Z5R" name="content" keyPath="arrangedObjects" id="GHn-tz-ash"/>
|
||||
<outlet property="dataSource" destination="-2" id="PRV-Rt-UuC"/>
|
||||
<outlet property="delegate" destination="-2" id="WuV-c9-o5I"/>
|
||||
<outlet property="menu" destination="bCS-1z-UOZ" id="UCb-2v-WrM"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="ynD-Kb-eb3">
|
||||
<rect key="frame" x="-100" y="-100" width="223" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="NO" id="Dbq-yF-MKx" customClass="TransparentScroller">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="backgroundColor">
|
||||
<color key="value" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</scroller>
|
||||
</scrollView>
|
||||
</subviews>
|
||||
</view>
|
||||
<customObject id="stE-9g-lJ2" customClass="BookmarkManager"/>
|
||||
<arrayController mode="entity" entityName="DiskImage" automaticallyPreparesContent="YES" avoidsEmptySelection="NO" automaticallyRearrangesObjects="YES" id="YmL-8S-msS">
|
||||
<connections>
|
||||
<outlet property="delegate" destination="-2" id="1Hn-2t-Vzj"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="-188" y="143"/>
|
||||
</window>
|
||||
<arrayController id="vmp-9h-Z5R">
|
||||
<connections>
|
||||
<binding destination="-2" name="contentArray" keyPath="self.content" id="UTv-za-ry7"/>
|
||||
<binding destination="stE-9g-lJ2" name="managedObjectContext" keyPath="managedObjectContext" id="GyD-kH-DBa"/>
|
||||
</connections>
|
||||
</arrayController>
|
||||
<menu id="bCS-1z-UOZ">
|
||||
|
@ -156,5 +41,161 @@
|
|||
</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">
|
||||
<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="2560" height="1417"/>
|
||||
<view key="contentView" 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>
|
||||
<scrollView fixedFrame="YES" autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="a3G-Wf-K8I">
|
||||
<rect key="frame" x="-1" y="-1" width="410" height="272"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" ambiguous="YES" id="SFr-s6-6di">
|
||||
<rect key="frame" x="1" y="0.0" width="408" height="271"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView verticalHuggingPriority="750" ambiguous="YES" 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="246"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn width="300" minWidth="40" maxWidth="1000" id="k9E-Si-iTY">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Name">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="trJ-af-d0b">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="name"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="2Ic-UI-Je3">
|
||||
<rect key="frame" x="1" y="1" width="300" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gkM-KB-x76">
|
||||
<rect key="frame" x="0.0" y="0.0" width="300" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="PitchDark.2mg" id="Wcg-zo-CeN">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="2Ic-UI-Je3" name="value" keyPath="objectValue.name" id="FAu-HR-0jF"/>
|
||||
<binding destination="2Ic-UI-Je3" name="toolTip" keyPath="objectValue.path" id="0MM-sv-mET"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="gkM-KB-x76" id="tpG-TS-sXI"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn width="102" minWidth="40" maxWidth="1000" id="0aJ-xJ-YSS">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" title="Size">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" title="Text Cell" id="jRd-9Y-U6W">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="compare:" sortKey="size"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="UW9-AF-U9F">
|
||||
<rect key="frame" x="304" y="1" width="102" 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="102" 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"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="UW9-AF-U9F" name="value" keyPath="objectValue.size" id="Hca-7L-QN7">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">FileSizeTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="6Ry-Zn-euh" id="vUm-0h-5qV"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<action trigger="doubleAction" selector="doubleClick:" target="-2" id="wdp-Ek-Olo"/>
|
||||
<binding destination="YmL-8S-msS" name="content" keyPath="arrangedObjects" id="v56-YR-Qve"/>
|
||||
<binding destination="YmL-8S-msS" name="sortDescriptors" keyPath="sortDescriptors" previousBinding="v56-YR-Qve" id="BGa-9c-RdD"/>
|
||||
<outlet property="dataSource" destination="-2" id="gCn-sa-fuX"/>
|
||||
<outlet property="delegate" destination="-2" id="VHT-aS-4iS"/>
|
||||
<outlet property="menu" destination="bCS-1z-UOZ" id="a2u-hd-hPS"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="Z7O-AK-X5q">
|
||||
<rect key="frame" x="1" y="119" width="223" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="OLa-ra-vIN">
|
||||
<rect key="frame" x="224" y="17" width="15" height="102"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" 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">
|
||||
<allowedToolbarItems>
|
||||
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="lBE-ee-rCy"/>
|
||||
<toolbarItem implicitItemIdentifier="C346E56F-4480-4D8A-8485-33A3A51D7B78" label="" paletteLabel="Filter" sizingBehavior="auto" id="DsU-uu-UmZ">
|
||||
<nil key="toolTip"/>
|
||||
<searchField key="view" wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" id="qHV-IA-ysc">
|
||||
<rect key="frame" x="0.0" y="14" width="96" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<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">
|
||||
<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="filter:" target="-2" id="KhW-DS-b8s"/>
|
||||
</connections>
|
||||
</searchField>
|
||||
</toolbarItem>
|
||||
</allowedToolbarItems>
|
||||
<defaultToolbarItems>
|
||||
<toolbarItem reference="lBE-ee-rCy"/>
|
||||
<toolbarItem reference="lBE-ee-rCy"/>
|
||||
<toolbarItem reference="DsU-uu-UmZ"/>
|
||||
</defaultToolbarItems>
|
||||
</toolbar>
|
||||
<point key="canvasLocation" x="-196" y="513"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="onK-6l-2iV" name="textColor" keyPath="objectValue.titleColor" id="0Qx-rz-DEZ"/>
|
||||
<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">
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<customObject id="-2" userLabel="File's Owner" customClass="LaunchWindowController">
|
||||
<connections>
|
||||
<outlet property="addBookmarkWindow" destination="yIt-hP-HBq" id="Qhx-WV-cg4"/>
|
||||
<outlet property="bookmarkErrorField" destination="RiJ-Xw-sgW" id="6y5-Fo-AnM"/>
|
||||
<outlet property="bookmarkTextField" destination="fAl-Vn-x1w" id="GNr-j6-BiQ"/>
|
||||
<outlet property="machineView" destination="oVt-eD-aaj" id="Q9V-Kr-6GN"/>
|
||||
<outlet property="machineViewController" destination="FSD-3v-Wni" id="tXv-zJ-QO3"/>
|
||||
|
@ -570,9 +571,29 @@ Gw
|
|||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="RiJ-Xw-sgW">
|
||||
<rect key="frame" x="20" y="20" width="248" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Label" id="Ehz-4Z-Tjq">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="EFq-dZ-y90">
|
||||
<rect key="frame" x="378" y="79" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Default" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="cOs-WH-9Dr">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="-2" name="value" keyPath="bookmarkDefault" id="Oiv-hR-5fn"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<point key="canvasLocation" x="130" y="70"/>
|
||||
<point key="canvasLocation" x="-62" y="95"/>
|
||||
</window>
|
||||
<viewController nibName="MachineView" id="FSD-3v-Wni" customClass="NewMachineViewController"/>
|
||||
<menu id="Aa5-Sk-gZX">
|
||||
|
|
|
@ -13,17 +13,17 @@
|
|||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<customObject id="rSq-qV-SGy" customClass="BookmarkManager">
|
||||
<connections>
|
||||
<outlet property="menu" destination="ha0-nx-PIl" id="Ozd-ID-egK"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="Voe-Tx-rLC" customClass="AppDelegate">
|
||||
<connections>
|
||||
<outlet property="installWindow" destination="jWX-pY-Zpb" id="xAj-Vj-Vxn"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||
<customObject id="sJn-ug-xF3" customClass="BookmarkManager">
|
||||
<connections>
|
||||
<outlet property="menu" destination="ha0-nx-PIl" id="vTa-TU-DS1"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="3aq-Tx-mno" customClass="SUUpdater"/>
|
||||
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
|
||||
<items>
|
||||
|
@ -405,28 +405,34 @@
|
|||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<menu key="submenu" title="Bookmarks" id="ha0-nx-PIl">
|
||||
<items>
|
||||
<menuItem title="Manage Bookmarks…" keyEquivalent="b" id="isI-q6-b1V">
|
||||
<modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
|
||||
<connections>
|
||||
<action selector="manageBookmarks:" target="-1" id="vOm-90-AoO"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Add Bookmark…" keyEquivalent="d" id="1JF-xV-zmG">
|
||||
<connections>
|
||||
<action selector="addBookmark:" target="-1" id="cqp-ko-BfQ"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem title="Manage Bookmarks…" id="isI-q6-b1V">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Set Default" id="vbR-vS-lqO">
|
||||
<menuItem title="Set Default" hidden="YES" id="vbR-vS-lqO">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="defaultSave:" target="-1" id="FP9-EX-OKP"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
<menuItem isSeparatorItem="YES" id="gWR-Yl-mg6"/>
|
||||
<menuItem title="Default" id="mXC-Lp-gem">
|
||||
<menuItem title="Default" hidden="YES" id="mXC-Lp-gem">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
<connections>
|
||||
<action selector="defaultLoad:" target="-1" id="ErS-k6-azP"/>
|
||||
</connections>
|
||||
</menuItem>
|
||||
</items>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="rSq-qV-SGy" id="Z7N-CG-hU1"/>
|
||||
</connections>
|
||||
</menu>
|
||||
</menuItem>
|
||||
<menuItem title="Window" id="aUF-d1-5bR">
|
||||
|
@ -532,5 +538,6 @@
|
|||
</view>
|
||||
<point key="canvasLocation" x="13" y="-182"/>
|
||||
</window>
|
||||
<userDefaultsController representsSharedInstance="YES" id="uGS-pc-Wsn"/>
|
||||
</objects>
|
||||
</document>
|
||||
|
|
|
@ -49,8 +49,8 @@
|
|||
</textFieldCell>
|
||||
<connections>
|
||||
<action selector="wdChanged:" target="-2" id="g1P-8l-ZXi"/>
|
||||
<binding destination="yvB-HG-64y" name="enabled" keyPath="values.UseCustomMame" id="DeG-OW-Gd2"/>
|
||||
<binding destination="yvB-HG-64y" name="value" keyPath="values.MameWorkingDirectory" id="Kc9-Pc-XGU"/>
|
||||
<binding destination="yvB-HG-64y" name="enabled" keyPath="values.UseCustomMame" id="DeG-OW-Gd2"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="vTJ-Ez-c1R">
|
||||
|
@ -104,11 +104,53 @@
|
|||
<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"/>
|
||||
<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"/>
|
||||
<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>
|
||||
<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>
|
||||
</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>
|
||||
</subviews>
|
||||
</view>
|
||||
<point key="canvasLocation" x="140" y="147"/>
|
||||
</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>
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// Bookmark.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef Bookmark_h
|
||||
#define Bookmark_h
|
||||
|
||||
#import "Bookmark+CoreDataClass.h"
|
||||
|
||||
#endif /* Bookmark_h */
|
|
@ -7,28 +7,35 @@
|
|||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
@class NSMenu;
|
||||
@class Bookmark;
|
||||
@class DiskImage;
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface BookmarkManager : NSObject
|
||||
|
||||
@property (weak) IBOutlet NSMenu *menu;
|
||||
@property (readonly) NSManagedObjectContext *managedObjectContext;
|
||||
|
||||
+(instancetype)sharedManager;
|
||||
|
||||
-(void)loadBookmarks;
|
||||
-(void)updateMenu;
|
||||
-(NSString *)uniqueBookmarkName: (NSString *)name;
|
||||
|
||||
-(BOOL)validateName: (NSString *)name;
|
||||
-(NSError *)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name automatic: (BOOL)automatic;
|
||||
|
||||
-(BOOL)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name;
|
||||
-(NSDictionary *)loadBookmarkFromURL: (NSURL *)url;
|
||||
//-(NSError *)saveDefault: (NSDictionary *)bookmark;
|
||||
|
||||
-(BOOL)saveDefault: (NSDictionary *)bookmark;
|
||||
-(NSDictionary *)loadDefault;
|
||||
|
||||
-(NSError *)setAutomatic: (Bookmark *)bookmark;
|
||||
|
||||
-(BOOL)addDiskImage: (NSObject *)pathOrURL;
|
||||
|
||||
|
||||
//-(void)convertLegacyBookmarks;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
|
|
@ -9,19 +9,41 @@
|
|||
#import "BookmarkManager.h"
|
||||
#import "Ample.h"
|
||||
|
||||
#import "Bookmark.h"
|
||||
#import "DiskImage.h"
|
||||
#import "Menu.h"
|
||||
|
||||
|
||||
@interface BookmarkManager () {
|
||||
NSArray<NSURL *> *_urls;
|
||||
|
||||
NSPersistentStoreCoordinator *_psc;
|
||||
NSManagedObjectContext *_moc;
|
||||
NSManagedObjectModel *_mom;
|
||||
NSPersistentStore *_store;
|
||||
|
||||
NSFetchRequest *_defaultRequest;
|
||||
|
||||
|
||||
NSURL *_bookmarkDirectory;
|
||||
NSArrayController *_items;
|
||||
NSUInteger _newMenuGeneration;
|
||||
NSUInteger _currentMenuGeneration;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface BookmarkManager (MenuDelegate) <NSMenuDelegate>
|
||||
@end
|
||||
|
||||
@implementation BookmarkManager
|
||||
|
||||
static BookmarkManager *singleton = nil;
|
||||
|
||||
-(void)awakeFromNib {
|
||||
if (!singleton) singleton = self;
|
||||
if (!singleton) {
|
||||
singleton = self;
|
||||
if (!_items) [self initMenus];
|
||||
}
|
||||
}
|
||||
|
||||
+(instancetype)sharedManager {
|
||||
|
@ -31,7 +53,170 @@ static BookmarkManager *singleton = nil;
|
|||
|
||||
-(instancetype)init {
|
||||
if (singleton) return singleton;
|
||||
return [super init];
|
||||
|
||||
|
||||
if ((self = [super init])) {
|
||||
[self initCoreData];
|
||||
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
[nc addObserver: self selector: @selector(willTerminate:) name: NSApplicationWillTerminateNotification object: nil];
|
||||
[nc addObserver: self selector: @selector(diskImageAdded:) name: kNotificationDiskImageAdded object: nil];
|
||||
|
||||
|
||||
_newMenuGeneration = 1;
|
||||
_currentMenuGeneration = 0;
|
||||
}
|
||||
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
-(NSManagedObjectContext *)managedObjectContext {
|
||||
return _moc;
|
||||
}
|
||||
|
||||
-(void)initCoreData {
|
||||
|
||||
NSError *error;
|
||||
BOOL new = NO;
|
||||
|
||||
NSBundle *bundle = [NSBundle mainBundle];
|
||||
NSURL *url = [bundle URLForResource: @"Ample" withExtension: @"momd"];
|
||||
_mom = [[NSManagedObjectModel alloc] initWithContentsOfURL: url];
|
||||
|
||||
_psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: _mom];
|
||||
|
||||
_moc = [[NSManagedObjectContext alloc] initWithConcurrencyType: NSMainQueueConcurrencyType];
|
||||
[_moc setPersistentStoreCoordinator: _psc];
|
||||
|
||||
//[_moc setMergePolicy: [NSMergePolicy rollbackMergePolicy]];
|
||||
|
||||
url = SupportDirectory();
|
||||
#if 0
|
||||
url = [url URLByAppendingPathComponent: @"Ample.db"];
|
||||
|
||||
if (![url checkResourceIsReachableAndReturnError: &error])
|
||||
new = YES;
|
||||
|
||||
|
||||
_store = [_psc addPersistentStoreWithType: NSSQLiteStoreType
|
||||
configuration: nil
|
||||
URL: url
|
||||
options: nil
|
||||
error: &error];
|
||||
#else
|
||||
|
||||
url = [url URLByAppendingPathComponent: @"Ample.xml"];
|
||||
|
||||
if (![url checkResourceIsReachableAndReturnError: &error])
|
||||
new = YES;
|
||||
|
||||
|
||||
_store = [_psc addPersistentStoreWithType: NSXMLStoreType
|
||||
configuration: nil
|
||||
URL: url
|
||||
options: nil
|
||||
error: &error];
|
||||
|
||||
|
||||
#endif
|
||||
_defaultRequest = [Bookmark fetchRequest];
|
||||
[_defaultRequest setPredicate: [NSPredicate predicateWithFormat: @"automatic == TRUE"]];
|
||||
|
||||
if (new) {
|
||||
[self convertLegacyBookmarks];
|
||||
[self convertLegacyDiskImages];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(void)willTerminate: (NSNotification *)notification {
|
||||
|
||||
NSError *error;
|
||||
|
||||
if (![_moc save: &error]) {
|
||||
NSLog(@"%@", error);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
-(void)convertLegacyBookmarks {
|
||||
|
||||
//NSEntityDescription *e;
|
||||
|
||||
//e = [NSEntityDescription entityForName: @"Bookmark" inManagedObjectContext: moc];
|
||||
|
||||
NSURL *url = [self bookmarkDirectory];
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
NSError *error = nil;
|
||||
|
||||
NSArray *files = [fm contentsOfDirectoryAtURL: url
|
||||
includingPropertiesForKeys: nil
|
||||
options: NSDirectoryEnumerationSkipsHiddenFiles
|
||||
error: &error];
|
||||
|
||||
NSDate *now = [NSDate date];
|
||||
for (NSURL *url in files) {
|
||||
|
||||
|
||||
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
//NSData *data = [NSPropertyListSerialization dataWithPropertyList: dict format: NSPropertyListBinaryFormat_v1_0 options: 0 error: &error];
|
||||
|
||||
Bookmark *b = (Bookmark *)[NSEntityDescription insertNewObjectForEntityForName: @"Bookmark" inManagedObjectContext: _moc];
|
||||
|
||||
[b setName: [url lastPathComponent]];
|
||||
[b setDictionary: dict];
|
||||
//[b setData: data];
|
||||
[b setMachine: [dict objectForKey: @"machine"]];
|
||||
[b setCreated: now];
|
||||
}
|
||||
|
||||
// default...
|
||||
|
||||
url = [url URLByAppendingPathComponent: @".Default"];
|
||||
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
if (dict) {
|
||||
//NSData *data = [NSPropertyListSerialization dataWithPropertyList: dict format: NSPropertyListBinaryFormat_v1_0 options: 0 error: &error];
|
||||
|
||||
NSString *name = [self uniqueBookmarkName: @"Default"];
|
||||
Bookmark *b = (Bookmark *)[NSEntityDescription insertNewObjectForEntityForName: @"Bookmark" inManagedObjectContext: _moc];
|
||||
|
||||
[b setName: name];
|
||||
[b setAutomatic: YES];
|
||||
[b setDictionary: dict];
|
||||
//[b setData: data];
|
||||
[b setMachine: [dict objectForKey: @"machine"]];
|
||||
[b setCreated: now];
|
||||
|
||||
}
|
||||
|
||||
if (![_moc save: &error]) {
|
||||
NSLog(@"%@", error);
|
||||
}
|
||||
}
|
||||
|
||||
-(void)convertLegacyDiskImages {
|
||||
|
||||
NSError *error;
|
||||
NSURL *sd = SupportDirectory();
|
||||
NSURL *url = [sd URLByAppendingPathComponent: @"RecentDiskImages.plist"];
|
||||
|
||||
NSArray *array = [NSArray arrayWithContentsOfURL: url];
|
||||
if (!array) return;
|
||||
|
||||
for (NSDictionary *d in array) {
|
||||
|
||||
NSManagedObject *o = [NSEntityDescription insertNewObjectForEntityForName: @"DiskImage" inManagedObjectContext: _moc];
|
||||
[o setValue: [d objectForKey: @"date"] forKey: @"added"];
|
||||
[o setValue: [d objectForKey: @"date"] forKey: @"accessed"];
|
||||
[o setValue: [d objectForKey: @"path"] forKey: @"path"];
|
||||
[o setValue: [d objectForKey: @"size"] forKey: @"size"];
|
||||
}
|
||||
|
||||
if (![_moc save: &error]) {
|
||||
NSLog(@"%@", error);
|
||||
}
|
||||
}
|
||||
|
||||
-(NSURL *)bookmarkDirectory {
|
||||
|
@ -48,45 +233,59 @@ static BookmarkManager *singleton = nil;
|
|||
return url;
|
||||
}
|
||||
|
||||
/* disallow leading .
|
||||
* disallow : or / characters.
|
||||
*/
|
||||
-(BOOL)validateName: (NSString *)name {
|
||||
|
||||
enum { kMaxLength = 128 };
|
||||
unichar buffer[kMaxLength];
|
||||
NSUInteger length = [name length];
|
||||
if (length == 0 || length > kMaxLength) return NO;
|
||||
[name getCharacters: buffer range: NSMakeRange(0, length)];
|
||||
if (buffer[0] == '.') return NO;
|
||||
for (unsigned i = 0; i < length; ++i) {
|
||||
unichar c = buffer[i];
|
||||
if (c == ':' || c == '/') return NO;
|
||||
}
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
-(NSDictionary *)loadDefault {
|
||||
NSURL *url = [self bookmarkDirectory];
|
||||
url = [url URLByAppendingPathComponent: @".Default"];
|
||||
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];
|
||||
|
||||
NSDictionary *d;
|
||||
|
||||
if (@available(macOS 10.13, *)) {
|
||||
NSError *error = nil;
|
||||
d = [NSDictionary dictionaryWithContentsOfURL: url error: &error];
|
||||
if (!d) NSLog(@"Error loading %@: %@", url, error);
|
||||
} else {
|
||||
d = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
if (!d) NSLog(@"Error loading %@", url);
|
||||
}
|
||||
return d;
|
||||
return [b dictionary];
|
||||
|
||||
}
|
||||
|
||||
/* save as .Default */
|
||||
-(BOOL)saveDefault: (NSDictionary *)bookmark {
|
||||
-(NSError *)saveDefault: (NSDictionary *)bookmark {
|
||||
|
||||
return nil;
|
||||
|
||||
#if 0
|
||||
/* check if it already exists */
|
||||
|
||||
NSFetchRequest *req;
|
||||
NSError *error;
|
||||
NSArray *array;
|
||||
Bookmark *b;
|
||||
NSDate *now = [NSDate date];
|
||||
BOOL ok;
|
||||
|
||||
req = [[NSFetchRequest alloc] initWithEntityName: @"Default"];
|
||||
array = [_moc executeFetchRequest: req error: &error];
|
||||
|
||||
|
||||
b = [array firstObject];
|
||||
if (b) {
|
||||
[b setModified: now];
|
||||
} else {
|
||||
b = (Bookmark *)[NSEntityDescription insertNewObjectForEntityForName: @"Default" inManagedObjectContext: _moc];
|
||||
|
||||
[b setName: @"Default"];
|
||||
[b setCreated: now];
|
||||
}
|
||||
[b setDictionary: bookmark];
|
||||
[b setMachine: [bookmark objectForKey: @"machine"]];
|
||||
|
||||
ok = [_moc save: &error];
|
||||
if (!ok) NSLog(@"%@", error);
|
||||
return error;
|
||||
|
||||
#if 0
|
||||
NSURL *url = [self bookmarkDirectory];
|
||||
url = [url URLByAppendingPathComponent: @".Default"];
|
||||
|
||||
|
@ -99,116 +298,291 @@ static BookmarkManager *singleton = nil;
|
|||
ok = [bookmark writeToURL: url atomically: YES];
|
||||
}
|
||||
return ok;
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
-(BOOL)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name {
|
||||
|
||||
-(NSError *)setAutomatic: (Bookmark *)bookmark {
|
||||
|
||||
NSError *error = nil;
|
||||
NSFetchRequest *req = [Bookmark fetchRequest];
|
||||
[req setPredicate: [NSPredicate predicateWithFormat: @"automatic == TRUE"]];
|
||||
|
||||
NSArray *array = [_moc executeFetchRequest: req error: &error];
|
||||
for (Bookmark *b in array) {
|
||||
if (b != bookmark) [b setAutomatic: NO];
|
||||
}
|
||||
[bookmark setAutomatic: YES];
|
||||
if (error) return error;
|
||||
[_moc save: &error];
|
||||
return error;
|
||||
}
|
||||
|
||||
-(NSError *)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name automatic: (BOOL)automatic {
|
||||
|
||||
NSDate *now = [NSDate date];
|
||||
NSError *error;
|
||||
NSData *data = [NSPropertyListSerialization dataWithPropertyList: bookmark
|
||||
format: NSPropertyListXMLFormat_v1_0
|
||||
options: 0
|
||||
error: &error];
|
||||
|
||||
|
||||
|
||||
NSURL *base = [self bookmarkDirectory];
|
||||
|
||||
NSURL *url = [base URLByAppendingPathComponent: name];
|
||||
|
||||
BOOL ok = [data writeToURL: url options: NSDataWritingWithoutOverwriting error: &error];
|
||||
BOOL ok;
|
||||
|
||||
Bookmark *b = (Bookmark *)[NSEntityDescription insertNewObjectForEntityForName: @"Bookmark" inManagedObjectContext: _moc];
|
||||
|
||||
[b setName: name];
|
||||
[b setDictionary: bookmark];
|
||||
[b setMachine: [bookmark objectForKey: @"machine"]];
|
||||
[b setCreated: now];
|
||||
[b setAutomatic: automatic];
|
||||
|
||||
ok = [b validateForInsert: &error];
|
||||
if (!ok) {
|
||||
for (unsigned i = 1 ; i < 100; ++i) {
|
||||
NSString *tmp = [name stringByAppendingFormat: @" (%d)", i];
|
||||
url = [base URLByAppendingPathComponent: tmp];
|
||||
|
||||
ok = [data writeToURL: url options: NSDataWritingWithoutOverwriting error: &error];
|
||||
if (ok) {
|
||||
name = tmp;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// will be useful, eg "name is too long"
|
||||
// keys: NSValidationErrorObject, NSLocalizedDescription, NSValidationErrorKey, NSValidationErrorValue
|
||||
//NSLog(@"%@", error);
|
||||
[_moc deleteObject: b];
|
||||
return error;
|
||||
}
|
||||
if (!ok) return NO;
|
||||
|
||||
if (!_menu) return YES; // ?
|
||||
|
||||
NSUInteger ix = [_urls indexOfObjectPassingTest: ^BOOL(NSURL *object, NSUInteger index, BOOL *stop){
|
||||
NSString *path = [object lastPathComponent];
|
||||
return [name caseInsensitiveCompare: path] == NSOrderedAscending;
|
||||
}];
|
||||
|
||||
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle: name action: @selector(bookmarkMenu:) keyEquivalent: @""];
|
||||
[item setRepresentedObject: url];
|
||||
|
||||
if (ix == NSNotFound) {
|
||||
_urls = [_urls arrayByAddingObject: url];
|
||||
[_menu addItem: item];
|
||||
} else {
|
||||
|
||||
NSInteger n = [_menu numberOfItems];
|
||||
[_menu insertItem: item atIndex: n - [_urls count] + ix];
|
||||
NSMutableArray *tmp = [_urls mutableCopy];
|
||||
|
||||
[tmp insertObject: url atIndex: ix];
|
||||
ok = [_moc save: &error];
|
||||
if (!ok) {
|
||||
//NSLog(@"%@", error);
|
||||
[_moc deleteObject: b];
|
||||
error = [NSError errorWithDomain: @"Ample" code: 0 userInfo: @{ NSLocalizedDescriptionKey: @"Duplicate name" }];
|
||||
return error;
|
||||
}
|
||||
|
||||
return YES;
|
||||
if (automatic) {
|
||||
[self setAutomatic: b];
|
||||
}
|
||||
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
-(NSDictionary *)loadBookmarkFromURL: (NSURL *)url {
|
||||
|
||||
NSDictionary *d;
|
||||
|
||||
if (@available(macOS 10.13, *)) {
|
||||
NSError *error = nil;
|
||||
d = [NSDictionary dictionaryWithContentsOfURL: url error: &error];
|
||||
if (!d) NSLog(@"Error loading %@: %@", url, error);
|
||||
} else {
|
||||
d = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
if (!d) NSLog(@"Error loading %@", url);
|
||||
}
|
||||
return d;
|
||||
}
|
||||
|
||||
|
||||
-(void)loadBookmarks {
|
||||
|
||||
NSURL *url = [self bookmarkDirectory];
|
||||
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
NSError *error = nil;
|
||||
NSSortDescriptor *s = [NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES selector: @selector(caseInsensitiveCompare:)];
|
||||
|
||||
NSArray *files = [fm contentsOfDirectoryAtURL: url
|
||||
includingPropertiesForKeys: nil
|
||||
options: NSDirectoryEnumerationSkipsHiddenFiles
|
||||
error: &error];
|
||||
|
||||
// bleh, has to create 2 new NSStrings for every comparison
|
||||
files = [files sortedArrayUsingComparator: ^(NSURL *a, NSURL *b){
|
||||
NSString *aa = [a lastPathComponent];
|
||||
NSString *bb = [b lastPathComponent];
|
||||
return [aa caseInsensitiveCompare: bb];
|
||||
}];
|
||||
|
||||
|
||||
_urls = files;
|
||||
_items = [NSArrayController new];
|
||||
[_items setManagedObjectContext: _moc];
|
||||
[_items setAvoidsEmptySelection: NO];
|
||||
[_items setAutomaticallyPreparesContent: YES];
|
||||
[_items setAutomaticallyRearrangesObjects: YES];
|
||||
[_items setEntityName: @"Bookmark"];
|
||||
[_items setSortDescriptors: @[ s ]];
|
||||
|
||||
[_items fetch: nil];
|
||||
}
|
||||
|
||||
-(void)updateMenu {
|
||||
|
||||
/* extract the number from a trailing " (%d)" */
|
||||
static int extract_number(NSString *s, NSInteger offset) {
|
||||
|
||||
NSArray *menus = [_menu itemArray];
|
||||
unichar buffer[32];
|
||||
NSInteger len = [s length] - offset;
|
||||
unichar c;
|
||||
int i;
|
||||
int n = 0;
|
||||
|
||||
if (len < 4) return -1; /* " (1)"*/
|
||||
if (len > 8) return -1; /* " (99999)" */
|
||||
|
||||
NSRange r = NSMakeRange(offset, len);
|
||||
[s getCharacters: buffer range: r];
|
||||
|
||||
buffer[len] = 0;
|
||||
i = 0;
|
||||
if (buffer[i++] != ' ') return -1;
|
||||
if (buffer[i++] != '(') return -1;
|
||||
|
||||
c = buffer[i++];
|
||||
if (c < '1' || c > '9') return -1;
|
||||
n = c - '0';
|
||||
|
||||
for (;;) {
|
||||
c = buffer[i];
|
||||
if (c < '0' || c > '9') break;
|
||||
n = n * 10 + (c - '0');
|
||||
++i;
|
||||
}
|
||||
|
||||
if (buffer[i++] != ')') return -1;
|
||||
if (buffer[i++] != 0) return -1;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
|
||||
-(NSString *)uniqueBookmarkName: (NSString *)name {
|
||||
|
||||
NSInteger length = [name length];
|
||||
|
||||
NSError *error = nil;
|
||||
NSPredicate *p = [NSPredicate predicateWithFormat: @"name BEGINSWITH %@", name];
|
||||
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName: @"Bookmark"];
|
||||
[req setPredicate: p];
|
||||
|
||||
NSArray *array = [_moc executeFetchRequest: req error: &error];
|
||||
if (![array count]) return name;
|
||||
|
||||
uint64_t bits = 1; /* mark 0 as unavailable */
|
||||
NSInteger max = 0;
|
||||
BOOL exact = NO;
|
||||
for (Bookmark *b in array) {
|
||||
NSString *s = [b name];
|
||||
if ([name isEqualToString: s]) {
|
||||
exact = YES;
|
||||
continue;
|
||||
}
|
||||
int n = extract_number(s, length);
|
||||
if (n < 1) continue;
|
||||
if (n > max) max = n;
|
||||
if (n < 64)
|
||||
bits |= (1 << n);
|
||||
}
|
||||
if (!exact) return name;
|
||||
|
||||
if (bits == (uint64_t)-1) {
|
||||
return [name stringByAppendingFormat: @" (%u)", (int)(max + 1)];
|
||||
}
|
||||
|
||||
#if 1
|
||||
int ix = 0;
|
||||
while (bits & 0x01) {
|
||||
++ix;
|
||||
bits >>= 1;
|
||||
}
|
||||
#else
|
||||
// this doesn't work correctly.
|
||||
int ix = __builtin_ffsll(~bits);
|
||||
#endif
|
||||
return [name stringByAppendingFormat: @" (%u)", ix];
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
-(BOOL)addDiskImage: (NSObject *)pathOrURL {
|
||||
|
||||
NSError *error;
|
||||
|
||||
NSString *path = nil;
|
||||
NSURL *url = nil;
|
||||
if ([pathOrURL isKindOfClass: [NSString class]]) {
|
||||
path = (NSString *)pathOrURL;
|
||||
} else if ([pathOrURL isKindOfClass: [NSURL class]]){
|
||||
url = (NSURL *)pathOrURL;
|
||||
|
||||
path = [NSString stringWithCString: [url fileSystemRepresentation] encoding: NSUTF8StringEncoding];
|
||||
}
|
||||
if (!path) return NO;
|
||||
|
||||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
|
||||
NSDictionary *attr = [fm attributesOfItemAtPath: path error: &error];
|
||||
if (error) {
|
||||
NSLog(@"%@ : %@", path, error);
|
||||
return NO;
|
||||
}
|
||||
|
||||
NSNumber *size = [attr objectForKey: NSFileSize];
|
||||
|
||||
NSDate *now = [NSDate date];
|
||||
|
||||
NSPredicate *p = [NSPredicate predicateWithFormat: @"path = %@", path];
|
||||
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName: @"DiskImage"];
|
||||
[req setPredicate: p];
|
||||
|
||||
|
||||
NSArray *array = [_moc executeFetchRequest: req error: &error];
|
||||
BOOL found = 0;
|
||||
for (NSManagedObject *o in array) {
|
||||
found = YES;
|
||||
[o setValue: now forKey: @"accessed"];
|
||||
}
|
||||
if (found) return NO;
|
||||
|
||||
DiskImage *o = [NSEntityDescription insertNewObjectForEntityForName: @"DiskImage" inManagedObjectContext: _moc];
|
||||
|
||||
|
||||
[o setPath: path];
|
||||
[o setAdded: now];
|
||||
[o setAccessed: now];
|
||||
[o setSize: [size longLongValue]];
|
||||
[o updatePath];
|
||||
|
||||
if (![_moc save: &error]) {
|
||||
NSLog(@"%@", error);
|
||||
[_moc deleteObject: o];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
-(void)diskImageAdded: (NSNotification *)notification {
|
||||
|
||||
NSURL *url = [notification object];
|
||||
if (url) [self addDiskImage: url];
|
||||
}
|
||||
|
||||
static NSString *kMenuContext = @"";
|
||||
|
||||
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
|
||||
if (context == (__bridge void * _Nullable)(kMenuContext)) {
|
||||
|
||||
//NSLog(@"observeValueForKeyPath %@", keyPath);
|
||||
|
||||
_newMenuGeneration++;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
[super observeValueForKeyPath: keyPath ofObject: object change: change context: context];
|
||||
}
|
||||
|
||||
-(void)initMenus {
|
||||
|
||||
if (!_items) {
|
||||
[self loadBookmarks];
|
||||
[_items addObserver: self forKeyPath: @"arrangedObjects.name" options: 0 context: (__bridge void * _Nullable)(kMenuContext)];
|
||||
[_items addObserver: self forKeyPath: @"arrangedObjects.automatic" options: 0 context: (__bridge void * _Nullable)(kMenuContext)];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
-(IBAction)bookmarkMenu:(id)sender
|
||||
{
|
||||
}
|
||||
|
||||
-(void)menuNeedsUpdate:(NSMenu *)menu {
|
||||
|
||||
if (_currentMenuGeneration == _newMenuGeneration) return;
|
||||
_currentMenuGeneration = _newMenuGeneration;
|
||||
|
||||
|
||||
NSArray *menus = [menu itemArray];
|
||||
for (NSMenuItem *item in [menus reverseObjectEnumerator]) {
|
||||
if ([item tag] == 0xdeadbeef) [_menu removeItem: item];
|
||||
}
|
||||
for (NSURL *url in _urls) {
|
||||
NSString *title = [url lastPathComponent]; // [[url lastPathComponent] stringByDeletingPathExtension];
|
||||
|
||||
NSArray *array = [_items arrangedObjects];
|
||||
for (Bookmark *b in array) {
|
||||
|
||||
NSMenuItem *item = [_menu addItemWithTitle: title action: @selector(bookmarkMenu:) keyEquivalent: @""];
|
||||
[item setRepresentedObject: url];
|
||||
NSString *title = [b name];
|
||||
NSMenuItem *item = [menu addItemWithTitle: title action: @selector(bookmarkMenu:) keyEquivalent: @""];
|
||||
[item setRepresentedObject: b];
|
||||
[item setTag: 0xdeadbeef];
|
||||
if ([b automatic]) {
|
||||
|
||||
[item setOnStateImage: [NSImage imageNamed: NSImageNameStatusAvailable]];
|
||||
[item setState: NSOnState];
|
||||
}
|
||||
//if ([b automatic]) [item setAttributedTitle: ItalicMenuString([b name])];
|
||||
//[item setState: [b automatic] ? NSMixedState : NSOffState];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
//
|
||||
// BookmarkWindowController.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface BookmarkWindowController : NSWindowController
|
||||
|
||||
+(instancetype)sharedInstance;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,170 @@
|
|||
//
|
||||
// BookmarkWindowController.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#import "BookmarkWindowController.h"
|
||||
#import "BookmarkManager.h"
|
||||
#import "Bookmark.h"
|
||||
#import "Ample.h"
|
||||
|
||||
|
||||
|
||||
@interface BookmarkWindowController ()
|
||||
@property (strong) IBOutlet NSArrayController *arrayController;
|
||||
@property (strong) IBOutlet BookmarkManager *bookmarkManager;
|
||||
|
||||
@property (weak) IBOutlet NSTableView *tableView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkWindowController
|
||||
|
||||
|
||||
+(instancetype)sharedInstance {
|
||||
static BookmarkWindowController *me = nil;
|
||||
if (!me) {
|
||||
me = [self new];
|
||||
}
|
||||
return me;
|
||||
}
|
||||
|
||||
-(NSString *)windowNibName {
|
||||
return @"BookmarkWindow";
|
||||
}
|
||||
|
||||
|
||||
- (void)windowDidLoad {
|
||||
[super windowDidLoad];
|
||||
|
||||
NSSortDescriptor *s = [NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES selector: @selector(caseInsensitiveCompare:)];
|
||||
|
||||
[_arrayController setSortDescriptors: @[s]];
|
||||
|
||||
}
|
||||
|
||||
-(BOOL)windowShouldClose: (NSWindow *)sender {
|
||||
|
||||
NSManagedObjectContext *moc = [_arrayController managedObjectContext];
|
||||
NSError *error;
|
||||
|
||||
if (![_arrayController commitEditing]) return NO;
|
||||
|
||||
if ([moc save: &error]) return YES;
|
||||
NSLog(@"%@", error);
|
||||
|
||||
#if 0
|
||||
NSDictionary *dict = [error userInfo];
|
||||
NSArray *array = [dict objectForKey: @"conflictList"];
|
||||
for (NSConstraintConflict *c in array) {
|
||||
|
||||
NSArray * arr = [c conflictingObjects];
|
||||
for (NSManagedObject *o in arr) {
|
||||
|
||||
}
|
||||
}
|
||||
#endif
|
||||
return YES;
|
||||
|
||||
//[self presentError: error];
|
||||
//return NO;
|
||||
}
|
||||
|
||||
-(void)keyDown:(NSEvent *)event {
|
||||
/* Carbon/Events.h */
|
||||
enum {
|
||||
kVK_Delete = 0x33,
|
||||
kVK_ForwardDelete = 0x75,
|
||||
|
||||
};
|
||||
unsigned short keyCode = [event keyCode];
|
||||
|
||||
if (keyCode == kVK_Delete || keyCode == kVK_ForwardDelete) {
|
||||
|
||||
// arraycontroller selected object / selected index doesn't work right.
|
||||
|
||||
NSInteger row = [_tableView selectedRow];
|
||||
if (row >= 0)
|
||||
[_arrayController removeObjectAtArrangedObjectIndex: row];
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
-(Bookmark *)clickedItem {
|
||||
|
||||
NSArray *array = [_arrayController arrangedObjects];
|
||||
NSInteger row = [_tableView clickedRow];
|
||||
if (row < 0 || row >= [array count]) return nil;
|
||||
return [array objectAtIndex: row];
|
||||
}
|
||||
|
||||
-(IBAction)doubleClick:(id)sender {
|
||||
|
||||
Bookmark *b = [self clickedItem];
|
||||
if (!b) return;
|
||||
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
[nc postNotificationName: kNotificationBookmarkMagicRoute object: b];
|
||||
}
|
||||
|
||||
-(IBAction)toggleDefault:(id)sender {
|
||||
NSLog(@"%@", sender);
|
||||
|
||||
|
||||
}
|
||||
|
||||
-(IBAction)setDefault:(id)sender {
|
||||
|
||||
Bookmark *b = [self clickedItem];
|
||||
if (!b) return;
|
||||
|
||||
[_bookmarkManager setAutomatic: b];
|
||||
}
|
||||
|
||||
-(IBAction)clearDefault:(id)sender {
|
||||
|
||||
Bookmark *b = [self clickedItem];
|
||||
if (!b) return;
|
||||
|
||||
[b setAutomatic: NO];
|
||||
}
|
||||
|
||||
|
||||
-(IBAction)deleteBookmark:(id)sender {
|
||||
|
||||
//Bookmark *b = [self clickedItem];
|
||||
//if (!b) return;
|
||||
|
||||
NSInteger row = [_tableView clickedRow];
|
||||
if (row >= 0)
|
||||
[_arrayController removeObjectAtArrangedObjectIndex: row];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation BookmarkWindowController (Menu)
|
||||
|
||||
-(BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
||||
|
||||
Bookmark *b = [self clickedItem];
|
||||
|
||||
if (!b) return NO;
|
||||
SEL action = [menuItem action];
|
||||
|
||||
if (action == @selector(clearDefault:)) {
|
||||
return [b automatic];
|
||||
}
|
||||
|
||||
if (action == @selector(setDefault:)) {
|
||||
return ![b automatic];
|
||||
}
|
||||
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<model type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="15702" systemVersion="18G9323" minimumToolsVersion="Automatic" sourceLanguage="Objective-C" userDefinedModelVersionIdentifier="0">
|
||||
<entity name="Bookmark" representedClassName="Bookmark" syncable="YES">
|
||||
<attribute name="automatic" attributeType="Boolean" defaultValueString="NO" usesScalarValueType="YES"/>
|
||||
<attribute name="comment" optional="YES" attributeType="String"/>
|
||||
<attribute name="created" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
|
||||
<attribute name="data" attributeType="Binary"/>
|
||||
<attribute name="machine" optional="YES" attributeType="String"/>
|
||||
<attribute name="modified" optional="YES" attributeType="Date" usesScalarValueType="NO"/>
|
||||
<attribute name="name" attributeType="String" minValueString="1" maxValueString="32"/>
|
||||
<fetchIndex name="Bookmark_name">
|
||||
<fetchIndexElement property="name" type="Binary" order="ascending"/>
|
||||
</fetchIndex>
|
||||
</entity>
|
||||
<entity name="DiskImage" representedClassName="DiskImage" syncable="YES">
|
||||
<attribute name="accessed" attributeType="Date" usesScalarValueType="NO"/>
|
||||
<attribute name="added" attributeType="Date" usesScalarValueType="NO"/>
|
||||
<attribute name="name" optional="YES" transient="YES" attributeType="String"/>
|
||||
<attribute name="path" attributeType="String"/>
|
||||
<attribute name="size" attributeType="Integer 64" defaultValueString="0" usesScalarValueType="YES"/>
|
||||
<fetchIndex name="DiskImage_path">
|
||||
<fetchIndexElement property="path" type="Binary" order="ascending"/>
|
||||
</fetchIndex>
|
||||
</entity>
|
||||
<elements>
|
||||
<element name="Bookmark" positionX="994.5546875" positionY="-404.046875" width="128" height="148"/>
|
||||
<element name="DiskImage" positionX="1242" positionY="-333" width="128" height="118"/>
|
||||
</elements>
|
||||
</model>
|
|
@ -0,0 +1,25 @@
|
|||
//
|
||||
// Bookmark+CoreDataClass.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface Bookmark : NSManagedObject
|
||||
|
||||
@property NSDictionary *dictionary;
|
||||
|
||||
+(NSString *)uniqueName: (NSString *)name inContext: (NSManagedObjectContext *)context;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
#import "Bookmark+CoreDataProperties.h"
|
|
@ -0,0 +1,175 @@
|
|||
//
|
||||
// Bookmark+CoreDataClass.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "Bookmark+CoreDataClass.h"
|
||||
|
||||
@implementation Bookmark
|
||||
|
||||
/* extract the number from a trailing " (%d)" */
|
||||
static int extract_number(NSString *s, NSInteger offset) {
|
||||
|
||||
unichar buffer[32];
|
||||
NSInteger len = [s length] - offset;
|
||||
unichar c;
|
||||
int i;
|
||||
int n = 0;
|
||||
|
||||
if (len < 4) return -1; /* " (1)"*/
|
||||
if (len > 6) return -1; /* " (999)" */
|
||||
|
||||
NSRange r = NSMakeRange(offset, len);
|
||||
[s getCharacters: buffer range: r];
|
||||
|
||||
buffer[len] = 0;
|
||||
i = 0;
|
||||
if (buffer[i++] != ' ') return -1;
|
||||
if (buffer[i++] != '(') return -1;
|
||||
|
||||
c = buffer[i++];
|
||||
if (c < '1' || c > '9') return -1;
|
||||
n = c - '0';
|
||||
|
||||
for (;;) {
|
||||
c = buffer[i];
|
||||
if (c < '0' || c > '9') break;
|
||||
n = n * 10 + (c - '0');
|
||||
++i;
|
||||
}
|
||||
|
||||
if (buffer[i++] != ')') return -1;
|
||||
if (buffer[i++] != 0) return -1;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
+(NSString *)uniqueName: (NSString *)name inContext: (NSManagedObjectContext *)context {
|
||||
|
||||
NSInteger length = [name length];
|
||||
|
||||
NSError *error = nil;
|
||||
NSPredicate *p = [NSPredicate predicateWithFormat: @"name BEGINSWITH %@", name];
|
||||
NSFetchRequest *req = [NSFetchRequest fetchRequestWithEntityName: @"Bookmark"];
|
||||
[req setPredicate: p];
|
||||
|
||||
NSArray *array = [context executeFetchRequest: req error: &error];
|
||||
if (![array count]) return name;
|
||||
|
||||
uint64_t bits = 1; /* mark 0 as unavailable */
|
||||
NSInteger max = 0;
|
||||
BOOL exact = NO;
|
||||
for (Bookmark *b in array) {
|
||||
NSString *s = [b name];
|
||||
if ([name isEqualToString: s]) {
|
||||
exact = YES;
|
||||
continue;
|
||||
}
|
||||
int n = extract_number(s, length);
|
||||
if (n < 1) continue;
|
||||
if (n > max) max = n;
|
||||
if (n < 64)
|
||||
bits |= (1 << n);
|
||||
}
|
||||
if (!exact) return name;
|
||||
|
||||
if (bits == (uint64_t)-1) {
|
||||
if (max == 999) return nil;
|
||||
return [name stringByAppendingFormat: @" (%u)", (int)(max + 1)];
|
||||
}
|
||||
|
||||
#if 1
|
||||
int ix = 0;
|
||||
while (bits) {
|
||||
++ix;
|
||||
bits >>= 1;
|
||||
}
|
||||
#else
|
||||
// this doesn't work correctly.
|
||||
int ix = __builtin_ffsll(~bits);
|
||||
#endif
|
||||
return [name stringByAppendingFormat: @" (%u)", ix];
|
||||
|
||||
}
|
||||
|
||||
-(void)setDictionary:(NSDictionary *)dictionary {
|
||||
|
||||
NSData *data;
|
||||
NSError *error = nil;
|
||||
|
||||
data = [NSPropertyListSerialization dataWithPropertyList: dictionary
|
||||
format: NSPropertyListBinaryFormat_v1_0
|
||||
options: 0
|
||||
error: &error];
|
||||
|
||||
[self setData: data];
|
||||
}
|
||||
|
||||
-(NSDictionary *)dictionary {
|
||||
|
||||
// NSDictionary *dict;
|
||||
NSData *data = [self data];
|
||||
NSError *error = nil;
|
||||
|
||||
return [NSPropertyListSerialization propertyListWithData: data
|
||||
options: 0
|
||||
format: nil
|
||||
error: &error];
|
||||
}
|
||||
|
||||
|
||||
- (NSError *)errorFromOriginalError:(NSError *)originalError error:(NSError*)secondError
|
||||
{
|
||||
NSMutableDictionary *userInfo = [NSMutableDictionary dictionary];
|
||||
NSMutableArray *errors = [NSMutableArray arrayWithObject:secondError];
|
||||
if ([originalError code] == NSValidationMultipleErrorsError) {
|
||||
[userInfo addEntriesFromDictionary:[originalError userInfo]];
|
||||
[errors addObjectsFromArray:[userInfo objectForKey:NSDetailedErrorsKey]];
|
||||
} else {
|
||||
[errors addObject:originalError];
|
||||
}
|
||||
[userInfo setObject:errors forKey:NSDetailedErrorsKey];
|
||||
return [NSError errorWithDomain:NSCocoaErrorDomain code:NSValidationMultipleErrorsError userInfo:userInfo];
|
||||
}
|
||||
|
||||
- (BOOL)validateName:(id*)ioValue error:(NSError**)outError {
|
||||
|
||||
if (!ioValue || !*ioValue) return YES;
|
||||
NSString *name = *ioValue;
|
||||
|
||||
NSFetchRequest *frq = [NSFetchRequest fetchRequestWithEntityName: @"Bookmark"];
|
||||
|
||||
NSPredicate *p = [NSPredicate predicateWithFormat: @"name = %@", name];
|
||||
[frq setPredicate: p];
|
||||
|
||||
NSArray * arr = [[self managedObjectContext] executeFetchRequest: frq error: nil];
|
||||
BOOL dupe = NO;
|
||||
for (Bookmark *b in arr) {
|
||||
if (b == self) continue;
|
||||
dupe = YES;
|
||||
break;
|
||||
}
|
||||
if (dupe && outError) {
|
||||
NSDictionary *dict = @{ NSLocalizedFailureReasonErrorKey: @"duplicate name",
|
||||
NSLocalizedDescriptionKey: @"duplicate name",
|
||||
NSValidationKeyErrorKey: @"name",
|
||||
NSValidationValueErrorKey: name,
|
||||
NSValidationObjectErrorKey: self
|
||||
};
|
||||
NSError *e = [NSError errorWithDomain: @"Ample" code: 1 userInfo: dict];
|
||||
|
||||
if (*outError) {
|
||||
*outError = [self errorFromOriginalError: *outError error: e];
|
||||
} else {
|
||||
*outError = e;
|
||||
}
|
||||
}
|
||||
return !dupe;
|
||||
}
|
||||
|
||||
|
||||
@end
|
|
@ -0,0 +1,28 @@
|
|||
//
|
||||
// Bookmark+CoreDataProperties.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "Bookmark+CoreDataClass.h"
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface Bookmark (CoreDataProperties)
|
||||
|
||||
+ (NSFetchRequest<Bookmark *> *)fetchRequest;
|
||||
|
||||
@property (nullable, nonatomic, copy) NSString *name;
|
||||
@property (nullable, nonatomic, copy) NSString *machine;
|
||||
@property (nullable, nonatomic, retain) NSData *data;
|
||||
@property (nullable, nonatomic, copy) NSDate *created;
|
||||
@property (nullable, nonatomic, copy) NSDate *modified;
|
||||
@property (nullable, nonatomic, copy) NSString *comment;
|
||||
@property (nonatomic) BOOL automatic;
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,26 @@
|
|||
//
|
||||
// Bookmark+CoreDataProperties.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/6/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "Bookmark+CoreDataProperties.h"
|
||||
|
||||
@implementation Bookmark (CoreDataProperties)
|
||||
|
||||
+ (NSFetchRequest<Bookmark *> *)fetchRequest {
|
||||
return [NSFetchRequest fetchRequestWithEntityName:@"Bookmark"];
|
||||
}
|
||||
|
||||
@dynamic name;
|
||||
@dynamic machine;
|
||||
@dynamic data;
|
||||
@dynamic created;
|
||||
@dynamic modified;
|
||||
@dynamic comment;
|
||||
@dynamic automatic;
|
||||
|
||||
@end
|
|
@ -0,0 +1,21 @@
|
|||
//
|
||||
// DiskImage+CoreDataClass.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CoreData/CoreData.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DiskImage : NSManagedObject
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
||||
|
||||
#import "DiskImage+CoreDataProperties.h"
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// DiskImage+CoreDataClass.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "DiskImage+CoreDataClass.h"
|
||||
|
||||
@implementation DiskImage
|
||||
|
||||
@end
|
|
@ -0,0 +1,29 @@
|
|||
//
|
||||
// DiskImage+CoreDataProperties.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "DiskImage+CoreDataClass.h"
|
||||
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface DiskImage (CoreDataProperties)
|
||||
|
||||
+ (NSFetchRequest<DiskImage *> *)fetchRequest;
|
||||
|
||||
@property (nullable, nonatomic, copy) NSString *path;
|
||||
@property (nullable, nonatomic, copy) NSDate *added;
|
||||
@property (nonatomic) int64_t size;
|
||||
@property (nullable, nonatomic, copy) NSDate *accessed;
|
||||
@property (nullable, nonatomic, copy) NSString *name;
|
||||
|
||||
-(void)updatePath;
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -0,0 +1,52 @@
|
|||
//
|
||||
// DiskImage+CoreDataProperties.m
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
//
|
||||
|
||||
#import "DiskImage+CoreDataProperties.h"
|
||||
|
||||
#if 0
|
||||
@interface DiskImage () {
|
||||
NSString *_name;
|
||||
}
|
||||
@end
|
||||
#endif
|
||||
|
||||
@implementation DiskImage (CoreDataProperties)
|
||||
|
||||
+ (NSFetchRequest<DiskImage *> *)fetchRequest {
|
||||
return [NSFetchRequest fetchRequestWithEntityName:@"DiskImage"];
|
||||
}
|
||||
|
||||
@dynamic path;
|
||||
@dynamic added;
|
||||
@dynamic size;
|
||||
@dynamic accessed;
|
||||
@dynamic name;
|
||||
|
||||
-(void)updatePath {
|
||||
|
||||
NSString *path = [self primitiveValueForKey: @"path"];
|
||||
[self setName: [path lastPathComponent]];
|
||||
}
|
||||
|
||||
-(void)awakeFromFetch {
|
||||
[super awakeFromFetch];
|
||||
|
||||
[self updatePath];
|
||||
}
|
||||
|
||||
#if 0
|
||||
-(void)awakeFromInsert {
|
||||
[super awakeFromInsert];
|
||||
|
||||
NSString *path = [self primitiveValueForKey: @"path"];
|
||||
[self setName: [path lastPathComponent]];
|
||||
}
|
||||
#endif
|
||||
|
||||
@end
|
|
@ -0,0 +1,14 @@
|
|||
//
|
||||
// DiskImage.h
|
||||
// Ample
|
||||
//
|
||||
// Created by Kelvin Sherlock on 2/7/2022.
|
||||
// Copyright © 2022 Kelvin Sherlock. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef DiskImage_h
|
||||
#define DiskImage_h
|
||||
|
||||
#import "DiskImage+CoreDataClass.h"
|
||||
|
||||
#endif /* DiskImage_h */
|
|
@ -9,19 +9,18 @@
|
|||
#import "DiskImagesWindowController.h"
|
||||
#import "TableCellView.h"
|
||||
#import "Ample.h"
|
||||
#import "DiskImage.h"
|
||||
|
||||
#import "BookmarkManager.h"
|
||||
|
||||
@interface DiskImagesWindowController ()
|
||||
@property (weak) IBOutlet NSTableView *tableView;
|
||||
@property (strong) IBOutlet NSArrayController *arrayController;
|
||||
@property (strong) NSMutableArray *content;
|
||||
|
||||
@end
|
||||
|
||||
@implementation DiskImagesWindowController {
|
||||
BOOL _dirty;
|
||||
NSSet *_extensions;
|
||||
NSTimer *_timer;
|
||||
|
||||
}
|
||||
|
||||
+(instancetype)sharedInstance {
|
||||
|
@ -44,7 +43,7 @@
|
|||
|
||||
if ((self = [super init])) {
|
||||
|
||||
[self loadRecentDiskImages];
|
||||
//[self loadRecentDiskImages];
|
||||
|
||||
_extensions = [NSSet setWithObjects:
|
||||
@"2img", @"2mg", @"chd", @"dc", @"do", @"dsk", @"hd", @"hdv", @"image", @"nib", @"po", @"wav", @"woz", @"iso", @"raw", nil
|
||||
|
@ -59,9 +58,6 @@
|
|||
|
||||
- (void)windowDidLoad {
|
||||
|
||||
if (!_content)
|
||||
[self setContent: [NSMutableArray new]];
|
||||
|
||||
[super windowDidLoad];
|
||||
NSWindow *window = [self window];
|
||||
[window setRestorable: YES];
|
||||
|
@ -75,8 +71,12 @@
|
|||
[_tableView setDraggingSourceOperationMask: NSDragOperationCopy forLocal: NO]; // enable drag/drop to othr apps.
|
||||
|
||||
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
|
||||
|
||||
NSSortDescriptor *s = [NSSortDescriptor sortDescriptorWithKey: @"name" ascending: YES selector: @selector(caseInsensitiveCompare:)];
|
||||
[_arrayController setSortDescriptors: @[ s ]];
|
||||
}
|
||||
|
||||
#if 0
|
||||
-(void)loadRecentDiskImages {
|
||||
// NSError *error;
|
||||
|
||||
|
@ -102,14 +102,16 @@
|
|||
_timer = nil;
|
||||
[self saveFile];
|
||||
}
|
||||
#endif
|
||||
|
||||
-(void)diskImageAdded: (NSNotification *)notification {
|
||||
|
||||
NSURL *url = [notification object];
|
||||
if (!url) return;
|
||||
|
||||
[self addFile: url];
|
||||
//[self addFile: url];
|
||||
}
|
||||
#if 0
|
||||
-(void)markDirty {
|
||||
_dirty = YES;
|
||||
if (_timer) [_timer invalidate];
|
||||
|
@ -124,6 +126,7 @@
|
|||
#endif
|
||||
}
|
||||
|
||||
|
||||
-(void)saveFile {
|
||||
|
||||
[_timer invalidate];
|
||||
|
@ -147,10 +150,11 @@
|
|||
[self saveFile];
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
-(BOOL)addFile: (NSObject *)pathOrURL {
|
||||
|
||||
NSString *path = nil;
|
||||
|
@ -198,18 +202,20 @@
|
|||
[NSDate new], @"date",
|
||||
nil];
|
||||
|
||||
#if 0
|
||||
@synchronized (self) {
|
||||
if (_arrayController)
|
||||
[_arrayController addObject: d];
|
||||
else
|
||||
[_content addObject: d];
|
||||
}
|
||||
#endif
|
||||
[self markDirty];
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
-(NSMutableDictionary *)clickedItem {
|
||||
#endif
|
||||
-(DiskImage *)clickedItem {
|
||||
|
||||
NSArray *array = [_arrayController arrangedObjects];
|
||||
NSInteger row = [_tableView clickedRow];
|
||||
|
@ -218,11 +224,21 @@
|
|||
}
|
||||
#pragma mark - IBActions
|
||||
|
||||
- (IBAction)filter:(id)sender {
|
||||
NSString *text = [sender stringValue];
|
||||
NSPredicate *p = nil;
|
||||
if ([text length]) {
|
||||
p = [NSPredicate predicateWithFormat: @"name CONTAINS[cd] %@",text];
|
||||
}
|
||||
|
||||
[_arrayController setFilterPredicate: p];
|
||||
}
|
||||
|
||||
- (IBAction)showInFinder:(id)sender {
|
||||
|
||||
NSMutableDictionary *item = [self clickedItem];
|
||||
DiskImage *item = [self clickedItem];
|
||||
if (!item) return;
|
||||
NSString *path = [item objectForKey: @"path"];
|
||||
NSString *path = [item path];
|
||||
|
||||
NSURL *url = [NSURL fileURLWithPath: path];
|
||||
if (!url) return;
|
||||
|
@ -233,27 +249,19 @@
|
|||
|
||||
- (IBAction)eject:(id)sender {
|
||||
|
||||
NSMutableDictionary *item = [self clickedItem];
|
||||
DiskImage *item = [self clickedItem];
|
||||
if (!item) return;
|
||||
|
||||
@synchronized (self) {
|
||||
|
||||
if (_arrayController) {
|
||||
[_arrayController removeObject: item];
|
||||
} else {
|
||||
[_content removeObject: item];
|
||||
}
|
||||
[self markDirty];
|
||||
}
|
||||
|
||||
[_arrayController removeObject: item];
|
||||
}
|
||||
|
||||
-(IBAction)doubleClick: (id)sender {
|
||||
NSDictionary *d = [self clickedItem];
|
||||
DiskImage *d = [self clickedItem];
|
||||
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
[nc postNotificationName: kNotificationDiskImageMagicRoute object: nil userInfo: d];
|
||||
NSDictionary *userInfo = @{ @"path": [d path] };
|
||||
[nc postNotificationName: kNotificationDiskImageMagicRoute object: nil userInfo: userInfo];
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -265,9 +273,9 @@
|
|||
|
||||
id objects = [_arrayController arrangedObjects];
|
||||
|
||||
NSDictionary *d = [objects objectAtIndex: row];
|
||||
|
||||
NSString *path = [d objectForKey: @"path"];
|
||||
DiskImage *d = [objects objectAtIndex: row];
|
||||
if (!d) return nil;
|
||||
NSString *path = [d path];
|
||||
|
||||
NSURL *url = [NSURL fileURLWithPath: path];
|
||||
return url;
|
||||
|
@ -304,6 +312,8 @@
|
|||
|
||||
-(BOOL)tableView:(NSTableView *)tableView acceptDrop:(id<NSDraggingInfo>)info row:(NSInteger)row dropOperation:(NSTableViewDropOperation)dropOperation {
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
if ([info draggingSource] == _tableView) return NO;
|
||||
|
||||
NSPasteboard * pb = [info draggingPasteboard];
|
||||
|
@ -322,7 +332,9 @@
|
|||
if (!s) continue;
|
||||
NSURL *url = [NSURL URLWithString: s];
|
||||
if (!url) continue;
|
||||
ok |= [self addFile: url];
|
||||
|
||||
ok |= [bm addDiskImage: url];
|
||||
//ok |= [self addFile: url];
|
||||
}
|
||||
return ok;
|
||||
}
|
||||
|
|
|
@ -81,6 +81,7 @@ enum {
|
|||
|
||||
@interface DownloadItem : NSObject
|
||||
|
||||
@property NSString *value;
|
||||
@property NSString *name;
|
||||
@property NSError *error;
|
||||
@property NSString *pathName;
|
||||
|
@ -208,7 +209,7 @@ enum {
|
|||
|
||||
NSURL *url = [bundle URLForResource: @"roms" withExtension: @"plist"];
|
||||
|
||||
NSDictionary *d = [NSDictionary dictionaryWithContentsOfURL: url];
|
||||
NSArray *roms = [NSArray arrayWithContentsOfURL: url];
|
||||
|
||||
NSURL *sd = SupportDirectory();
|
||||
|
||||
|
@ -232,7 +233,6 @@ enum {
|
|||
[self initializeExtensionMenu];
|
||||
|
||||
|
||||
NSArray *roms = [d objectForKey: @"roms"];
|
||||
[self setCurrentROM: @""];
|
||||
[self setCurrentCount: 0];
|
||||
[self setTotalCount: [roms count]];
|
||||
|
@ -241,10 +241,11 @@ enum {
|
|||
|
||||
NSMutableArray *tmp = [NSMutableArray arrayWithCapacity: [roms count]];
|
||||
unsigned ix = 0;
|
||||
for (NSString *name in roms) {
|
||||
for (NSDictionary *d in roms) {
|
||||
|
||||
DownloadItem *item = [DownloadItem new];
|
||||
[item setName: name];
|
||||
[item setValue: [d objectForKey: @"value"]];
|
||||
[item setName: [d objectForKey: @"description"]];
|
||||
[item setIndex: ix++];
|
||||
|
||||
[tmp addObject: item];
|
||||
|
@ -292,7 +293,7 @@ enum {
|
|||
}
|
||||
|
||||
NSURLSessionDownloadTask *task;
|
||||
NSString *s = [item name];
|
||||
NSString *s = [item value];
|
||||
NSString *path = [s stringByAppendingPathExtension: _downloadExtension];
|
||||
NSURL *url = [_downloadURL URLByAppendingPathComponent: path];
|
||||
|
||||
|
@ -313,7 +314,7 @@ enum {
|
|||
for (DownloadItem *item in _items) {
|
||||
|
||||
NSURLSessionDownloadTask *task;
|
||||
NSString *s = [item name];
|
||||
NSString *s = [item value];
|
||||
NSString *path = [s stringByAppendingPathExtension: _downloadExtension];
|
||||
NSURL *url = [_downloadURL URLByAppendingPathComponent: path];
|
||||
|
||||
|
@ -421,8 +422,8 @@ enum {
|
|||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
for (DownloadItem *item in _items) {
|
||||
NSString *name = [item name];
|
||||
NSString *s = [romdir stringByAppendingPathComponent: name];
|
||||
NSString *value = [item value];
|
||||
NSString *s = [romdir stringByAppendingPathComponent: value];
|
||||
NSString *path;
|
||||
path = [s stringByAppendingPathExtension: @"zip"];
|
||||
if ([fm fileExistsAtPath: path]) {
|
||||
|
|
|
@ -58,7 +58,7 @@
|
|||
<key>NSSupportsAutomaticTermination</key>
|
||||
<true/>
|
||||
<key>NSSupportsSuddenTermination</key>
|
||||
<true/>
|
||||
<false/>
|
||||
<key>SUFeedURL</key>
|
||||
<string>https://ample.ksherlock.com/updates/appcast.xml</string>
|
||||
<key>SUPublicEDKey</key>
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
#import "AutocompleteControl.h"
|
||||
#import "SoftwareList.h"
|
||||
#import "BookmarkManager.h"
|
||||
#import "Bookmark.h"
|
||||
|
||||
#include <sys/stat.h>
|
||||
#include <wctype.h>
|
||||
|
@ -79,10 +80,13 @@ static NSString *kContextMachine = @"kContextMachine";
|
|||
|
||||
@property (strong) IBOutlet NSWindow *addBookmarkWindow;
|
||||
@property (strong) NSString *bookmarkName;
|
||||
@property BOOL bookmarkDefault;
|
||||
@property (weak) IBOutlet NSTextField *bookmarkTextField;
|
||||
@property (weak) IBOutlet NSTextField *bookmarkErrorField;
|
||||
|
||||
@property BOOL optionKey;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@interface LaunchWindowController (SoftwareList)
|
||||
|
@ -98,6 +102,8 @@ static NSString *kContextMachine = @"kContextMachine";
|
|||
|
||||
-(IBAction)defaultLoad:(id)sender;
|
||||
|
||||
-(void)bookmarkNotification: (NSNotification *)notification;
|
||||
|
||||
@end
|
||||
|
||||
#define SIZEOF(x) (sizeof(x) / sizeof(x[0]))
|
||||
|
@ -207,9 +213,9 @@ static void AddSubview(NSView *parent, NSView *child) {
|
|||
AddSubview(_mediaView, [_mediaController view]);
|
||||
AddSubview(_machineView, [_machineViewController view]);
|
||||
|
||||
|
||||
// can't be done until above views are set up.
|
||||
[self defaultLoad: nil];
|
||||
|
||||
[_softwareListControl setMinWidth: 250];
|
||||
[_softwareListControl setHidden: YES];
|
||||
|
||||
|
||||
NSArray *keys = @[
|
||||
|
@ -240,10 +246,17 @@ static void AddSubview(NSView *parent, NSView *child) {
|
|||
[_machineViewController addObserver: self forKeyPath: @"machine" options: 0 context: (__bridge void * _Nullable)kContextMachine];
|
||||
|
||||
|
||||
[_softwareListControl setMinWidth: 250];
|
||||
[_softwareListControl setHidden: YES];
|
||||
|
||||
|
||||
// can't be done until above views are set up.
|
||||
[self defaultLoad: nil];
|
||||
|
||||
|
||||
[self buildCommandLine];
|
||||
|
||||
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
|
||||
|
||||
[nc addObserver: self selector: @selector(bookmarkNotification:) name: kNotificationBookmarkMagicRoute object: nil];
|
||||
}
|
||||
|
||||
|
||||
|
@ -765,11 +778,14 @@ static NSString *ShellQuote(NSString *s) {
|
|||
|
||||
-(IBAction)defaultSave:(id)sender {
|
||||
|
||||
#if 0
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
NSDictionary *d = [self makeBookmark];
|
||||
|
||||
[bm saveDefault: d];
|
||||
#endif
|
||||
}
|
||||
|
||||
-(IBAction)defaultLoad:(id)sender {
|
||||
|
@ -790,7 +806,9 @@ static NSString *ShellQuote(NSString *s) {
|
|||
-(IBAction)addBookmark:(id)sender {
|
||||
|
||||
if (!_machine) return;
|
||||
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
NSString *name = nil;
|
||||
if (_machineDescription) name = [_machineDescription objectForKey:@"description"];
|
||||
if (!name) name = _machine;
|
||||
|
@ -799,8 +817,14 @@ static NSString *ShellQuote(NSString *s) {
|
|||
if (_software) {
|
||||
name = [name stringByAppendingFormat: @" - %@", [_software title]];
|
||||
}
|
||||
|
||||
name = [bm uniqueBookmarkName: name];
|
||||
|
||||
[self setBookmarkName: name];
|
||||
[self setBookmarkDefault: NO];
|
||||
[_bookmarkTextField selectText: nil];
|
||||
[_bookmarkErrorField setStringValue: @""];
|
||||
|
||||
[[self window] beginSheet: _addBookmarkWindow completionHandler: nil];
|
||||
}
|
||||
|
||||
|
@ -810,19 +834,27 @@ static NSString *ShellQuote(NSString *s) {
|
|||
}
|
||||
|
||||
-(IBAction)bookmarkSave:(id)sender {
|
||||
|
||||
|
||||
|
||||
BookmarkManager *bm = [BookmarkManager sharedManager];
|
||||
|
||||
#if 0
|
||||
if (![bm validateName: _bookmarkName]) {
|
||||
[_bookmarkTextField selectText: nil];
|
||||
NSBeep();
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
NSDictionary *d = [self makeBookmark];
|
||||
NSError *e;
|
||||
|
||||
[bm saveBookmark: d name: _bookmarkName];
|
||||
if (( e = [bm saveBookmark: d name: _bookmarkName automatic: _bookmarkDefault])) {
|
||||
// probably a duplicate name...
|
||||
[_bookmarkTextField selectText: nil];
|
||||
[_bookmarkErrorField setStringValue: [e localizedDescription]];
|
||||
NSBeep();
|
||||
return;
|
||||
}
|
||||
|
||||
[[self window] endSheet: _addBookmarkWindow];
|
||||
[_addBookmarkWindow orderOut: nil];
|
||||
|
@ -830,14 +862,26 @@ static NSString *ShellQuote(NSString *s) {
|
|||
}
|
||||
|
||||
|
||||
-(void)bookmarkNotification: (NSNotification *)notification {
|
||||
|
||||
Bookmark *b = [notification object];
|
||||
NSDictionary *d = [b dictionary];
|
||||
|
||||
[self loadBookmark: d];
|
||||
}
|
||||
|
||||
-(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];
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ typedef struct Media {
|
|||
unsigned midiin;
|
||||
unsigned midiout;
|
||||
unsigned picture;
|
||||
uint64_t floppy_mask;
|
||||
} Media;
|
||||
|
||||
|
||||
|
|
|
@ -35,6 +35,12 @@ void MediaAdd(Media *dest, const Media *src) {
|
|||
|
||||
if (!src || !dest) return;
|
||||
|
||||
// could merge from src media but not currently set there.
|
||||
|
||||
unsigned count;
|
||||
unsigned flops = dest->floppy_5_25 + dest->floppy_3_5;
|
||||
|
||||
|
||||
#define _(name) dest->name += src->name;
|
||||
_(cass);
|
||||
_(cdrom);
|
||||
|
@ -47,6 +53,16 @@ void MediaAdd(Media *dest, const Media *src) {
|
|||
_(midiout);
|
||||
_(picture);
|
||||
#undef _
|
||||
|
||||
|
||||
if ((count = src->floppy_5_25)) {
|
||||
uint64_t bits = (1 << count) - 1;
|
||||
//dest->floppy_mask <<= count;
|
||||
bits <<= flops;
|
||||
dest->floppy_mask |= bits;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
BOOL MediaEqual(const Media *lhs, const Media *rhs) {
|
||||
|
@ -66,6 +82,8 @@ BOOL MediaEqual(const Media *lhs, const Media *rhs) {
|
|||
_(midiout);
|
||||
_(picture);
|
||||
|
||||
_(floppy_mask);
|
||||
|
||||
return YES;
|
||||
#undef _
|
||||
}
|
||||
|
|
|
@ -352,24 +352,43 @@
|
|||
static_assert(SIZEOF(prefix) == CATEGORY_COUNT, "Missing item");
|
||||
NSMutableArray *args = [NSMutableArray new];
|
||||
|
||||
unsigned counts[CATEGORY_COUNT] = { 0 };
|
||||
|
||||
//unsigned counts[CATEGORY_COUNT] = { 0 };
|
||||
|
||||
for (unsigned j = 0; j < CATEGORY_COUNT; ++j) {
|
||||
|
||||
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) {
|
||||
counts[j]++;
|
||||
|
||||
MediaItem *item = [cat objectAtIndex: i];
|
||||
NSString *arg = [item argument];
|
||||
|
||||
if (arg) {
|
||||
[args addObject: [NSString stringWithFormat: @"-%s%u", prefix[j], counts[j]]];
|
||||
[args addObject: arg];
|
||||
|
||||
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;
|
||||
++index;
|
||||
}
|
||||
} else if (j == kIndexFloppy35) {
|
||||
while ((floppy_mask & 0x01)) {
|
||||
floppy_mask >>= 1;
|
||||
++index;
|
||||
}
|
||||
}
|
||||
|
||||
++index;
|
||||
floppy_mask >>= 1;
|
||||
if (!arg) continue;
|
||||
|
||||
[args addObject: [NSString stringWithFormat: @"-%s%u", prefix[j], index]];
|
||||
[args addObject: arg];
|
||||
}
|
||||
if (j == 0) counts[1] = counts[0]; // 3.5/5.25
|
||||
}
|
||||
|
||||
[self setArgs: args];
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1366,6 +1382,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -5056,6 +5080,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -187,6 +187,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -708,6 +716,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1229,6 +1245,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1750,6 +1774,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2271,6 +2303,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2792,6 +2832,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3313,6 +3361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7206,6 +7262,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2uniprint</string>
|
||||
|
|
|
@ -227,6 +227,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -748,6 +756,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1269,6 +1285,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1790,6 +1814,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2311,6 +2343,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2832,6 +2872,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3353,6 +3401,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7246,6 +7302,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2uniprint</string>
|
||||
|
|
|
@ -227,6 +227,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -748,6 +756,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1269,6 +1285,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1790,6 +1814,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2311,6 +2343,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2832,6 +2872,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3353,6 +3401,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7246,6 +7302,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2uniprint</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -169,6 +169,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -777,6 +785,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -4682,6 +4698,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -169,6 +169,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -777,6 +785,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -4682,6 +4698,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -4642,6 +4658,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -129,6 +129,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -737,6 +745,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1345,6 +1361,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1953,6 +1977,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2563,6 +2595,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3173,6 +3213,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -3781,6 +3829,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -7451,6 +7507,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -148,6 +148,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -756,6 +764,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1364,6 +1380,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -1974,6 +1998,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -2582,6 +2614,14 @@
|
|||
<key>devname</key>
|
||||
<string>a2diskiing</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>superdrive</string>
|
||||
<key>description</key>
|
||||
<string>Apple II 3.5" Disk Controller Card</string>
|
||||
<key>devname</key>
|
||||
<string>a2superdrive</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>value</key>
|
||||
<string>hsscsi</string>
|
||||
|
@ -6272,6 +6312,121 @@
|
|||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>a2superdrive</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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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: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>35dd</string>
|
||||
<key>description</key>
|
||||
<string>3.5" DD</string>
|
||||
<key>default</key>
|
||||
<false/>
|
||||
<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>
|
||||
<true/>
|
||||
<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>a2surance</string>
|
||||
|
|
|
@ -165,18 +165,19 @@ static unsigned RootKey = 0;
|
|||
|
||||
|
||||
-(void)rebuildMedia {
|
||||
|
||||
|
||||
Media media = _machine_media;
|
||||
|
||||
Media media = EmptyMedia;
|
||||
|
||||
unsigned mask = 1;
|
||||
for (unsigned i = 0; i < SLOT_COUNT; ++i, mask <<= 1) {
|
||||
|
||||
|
||||
if (_slots_valid & mask) {
|
||||
MediaAdd(&media, &_slot_media[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// machine media last.
|
||||
MediaAdd(&media, &_machine_media);
|
||||
|
||||
[self setMedia: media];
|
||||
}
|
||||
|
||||
|
|
|
@ -142,7 +142,7 @@ def build_known_roms_list():
|
|||
|
||||
|
||||
|
||||
mnames = set()
|
||||
mnames = {}
|
||||
rnames = set()
|
||||
|
||||
known = build_known_roms_list()
|
||||
|
@ -156,18 +156,24 @@ for m in machines:
|
|||
if st.returncode != 0:
|
||||
print("mame error: {}".format(m))
|
||||
exit(1)
|
||||
xml = st.stdout
|
||||
root = ET.fromstring(xml)
|
||||
|
||||
data = { }
|
||||
|
||||
xml = st.stdout
|
||||
root = ET.fromstring(xml)
|
||||
|
||||
# find machines that have a rom child
|
||||
for x in root.findall('machine/rom/..'):
|
||||
name = x.get('name')
|
||||
if name in EXCLUDE: continue
|
||||
if name in mnames: continue
|
||||
mnames[name] = x.find("description").text
|
||||
#if (name in known): mnames.add(name)
|
||||
mnames.add(name)
|
||||
# if name in mnames:
|
||||
# mnames[name].append(m)
|
||||
# else:
|
||||
# mnames[name] = [ m ]
|
||||
# mnames.add(name)
|
||||
# for y in x.findall('./rom'):
|
||||
# rnames.add(y.get('name'))
|
||||
|
||||
|
@ -180,15 +186,19 @@ for m in machines:
|
|||
|
||||
# if full: ROMS = list(mnames)
|
||||
# else: ROMS = list(mnames.difference(EXCLUDE))
|
||||
ROMS = list(mnames)
|
||||
ROMS.sort()
|
||||
ROMS = [{ 'value': k, 'description': v} for k, v in mnames.items()];
|
||||
ROMS.sort(key=lambda x: x.get('description'))
|
||||
|
||||
data = {}
|
||||
# data = []
|
||||
# data["source"] = "https://archive.org/download/mame0.224"
|
||||
# data["type"] = "zip"
|
||||
# data["version"] = "0.224"
|
||||
data["roms"] = ROMS
|
||||
#data["roms"] = ROMS
|
||||
|
||||
# for k in ROMS:
|
||||
# data.append( { 'value': k, 'description': mnames[k] })
|
||||
|
||||
|
||||
# print(ROMS)
|
||||
with open("../Ample/Resources/roms.plist", "w") as f:
|
||||
f.write(to_plist(data))
|
||||
f.write(to_plist(ROMS))
|
||||
|
|
Loading…
Reference in New Issue