Compare commits

..

60 Commits

Author SHA1 Message Date
Kelvin Sherlock f628d99e4a load bookmark... 2021-06-04 00:21:08 -04:00
Kelvin Sherlock 0b248e6aad stringValue can't be nil. 2021-06-04 00:20:42 -04:00
Kelvin Sherlock 94aac38af4 add bookmark menu 2021-06-03 23:04:37 -04:00
Kelvin Sherlock 6215a0df12 slot view needs to know the machine. 2021-06-03 23:03:29 -04:00
Kelvin Sherlock d348c15dc5 transformer to enable/disable control based on string length. 2021-06-03 23:02:58 -04:00
Kelvin Sherlock e14336a009 shut up compiler warning. 2021-06-03 23:02:14 -04:00
Kelvin Sherlock 4baf545245 bookmark manager 2021-06-03 23:01:32 -04:00
Kelvin Sherlock 0f3e6c8307 more (untested) bookmark code 2021-05-31 23:54:29 -04:00
Kelvin Sherlock 8fdb149eb3 start of bookmarking support. Untested. 2021-05-31 16:13:43 -04:00
Kelvin Sherlock 787eac87f6 shut up warnings about content clipping.
maybe it's a 10.11 thing.  The size was chosen by interface builder.
2021-05-31 16:12:45 -04:00
Kelvin Sherlock 789d61d9f1 when launching, clear the first responder so any text fields with focus will commit. 2021-05-31 11:24:33 -04:00
Kelvin Sherlock 5ffc85f9fc 10.13+ launch wasn't. 2021-05-31 10:39:24 -04:00
Kelvin Sherlock 7b67522156 fix bitbanger / shared directory placeholders. 2021-05-30 22:22:13 -04:00
Kelvin Sherlock f14b291e60 fix auto-complete menu (remove show title setting) 2021-05-30 20:41:36 -04:00
Kelvin Sherlock 576931cd71 add interface for -share_directory (booti) and -bitbanger (null modem) 2021-05-30 18:46:46 -04:00
Kelvin Sherlock 9ed83bf316 NewSlotView -> SlotView 2021-05-30 18:19:51 -04:00
Kelvin Sherlock 751083ea26 remove old slot view controller code/nib 2021-05-30 18:14:55 -04:00
Kelvin Sherlock 1b7faf3ac4 Updates to work with 10.11 (El Capitan) and newer.
There are still a couple minor UI degradations

eg: mame cheat sheet, recent disk images window, auto complete window.

Squashed commit of the following:

commit fb115024f805da38b747fd1905573fabb7bff24e
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 18:00:13 2021 -0400

    ?

commit 8405f4df95ae8f5bc5dc33598dc0b3f8972b32cd
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 17:59:43 2021 -0400

    tintColor not present before 10.14

commit 86a6102cee4f30cac2972259ef55fda3c32b8f9a
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 17:59:19 2021 -0400

    [menu setItemArray:] apparently has problems before 10.14

commit 65227a00743fbf143c623af8a76698d57bdc4573
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 17:58:15 2021 -0400

    NSCache doesn't like null objects.

commit 8a4c3a4662647d5ee0b609bde9f3aaa5c0d99776
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 16:00:05 2021 -0400

    organize copy bundle resources.

    multiple-sized png images are converted to a single tiff (with multiple sizes).
    This is fine BUT EL capitan grabs the first image so if the @3x image is first, it will be used.

commit 44b94cdfd47117864b6529214b1c91a0c2e41327
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 15:57:37 2021 -0400

    add NewSlotViewController.m to Ample Lite.

commit 2fa1b7418783e48ca625ab3490e43cbff9e5619a
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 13:57:19 2021 -0400

    Ample Lite was missing reference to New Slot View nib.

commit 65f268e77a65f8c57019702d8f0c2b66577c5ee7
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 13:56:04 2021 -0400

    based on testing, 10.11 still has public.file-url, which is kUTTypeFileURL.  10.13 added NSURLPBoardType as a synonym.

commit cde123b16eb336b7695b444931b9e9bb9802d772
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 30 13:54:02 2021 -0400

    set everything to 10.11

commit e7a670efd3
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sat May 29 23:33:31 2021 -0400

    script to download SDL2.Framework

commit 9f38f2972a
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sat May 29 22:15:32 2021 -0400

    WKWebView apparently has a bug prior to 10.12 so it can't be created via a nib.

commit e18aea7249
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sat May 29 22:14:38 2021 -0400

    version checks for features not present in 10.11

commit 07dcf30f52
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Fri May 28 21:30:53 2021 -0400

    lower target to 10.11
2021-05-30 18:00:34 -04:00
Kelvin Sherlock bfbac2cc20 adjust media view nib to match the reduced size. 2021-05-28 21:29:54 -04:00
Kelvin Sherlock 3bf2f63bf6 really make scroller background transparent. 2021-05-28 21:29:27 -04:00
Kelvin Sherlock 6468ee2629 bump mame components date 2021-05-27 20:36:57 -04:00
Kelvin Sherlock 5f84c4b2c1 remove logging 2021-05-27 20:36:24 -04:00
Kelvin Sherlock 8944c88339 bump version 2021-05-27 20:36:01 -04:00
Kelvin Sherlock 3d4d0c92c7 Squashed commit of the following:
commit 1dd1d6d3eee928d283dafbaf4432b053dff65ac2
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Thu May 27 13:30:38 2021 -0400

    0.232 rom update

commit cfb7f9a4d1647c41fab3328bada0f37bdb041983
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Wed May 26 20:31:16 2021 -0400

    fix resizing to prevent horizontal scrolling

commit 5c393ab5a95c9e53c4ef1e0b3f2b77db93e1c29b
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Wed May 26 20:01:48 2021 -0400

    esc should close the menu if visible, otherwise clear the text.

commit 7da142b64280c39e216584cedb7fb14243d573f0
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue May 25 23:17:10 2021 -0400

    show software short name unless it's ambiguous.

commit 6f3b3bef5e18e78619959613e28064eb6251ce27
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue May 25 23:16:47 2021 -0400

    cleanup some auto complete rough edges

commit 4988d8b266b8b11e519bcb5aab05ad2c3ffe5c23
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue May 25 23:16:24 2021 -0400

    fix

commit 6d4bf94fd6b4850564b705ea15e91079b00346c2
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue May 25 19:13:28 2021 -0400

    clean up autocomplete a little...

commit 3722271e51d93599903bccc721dc1de61f0aae72
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Tue May 25 19:13:07 2021 -0400

    move auto complete logic to SoftwareSet

commit 04cc83ecbe9ee4c9100305712c47a11359327734
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Mon May 24 20:46:39 2021 -0400

    software - keep the list name to differentiate in case of name clashes.

commit 8e5b5dc7e283f760a16011308298e999110fc052
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Mon May 24 20:45:13 2021 -0400

    Autocomplete - limit menu content width to the clip view content width.

    prevents horizontal scrolling.

commit 356048d450447485bb33a4261018f85dac19a134
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Mon May 24 18:45:42 2021 -0400

    add auto complete software list to the launch window.

commit 9dc72b702c9b36d490349f291c10b98b56178567
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Mon May 24 18:44:28 2021 -0400

    autocomplete control.

commit 40eee83f56d957c64e0f8d927486f13165b9e120
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Mon May 24 18:39:32 2021 -0400

    add filters to software list.

commit cebfbaa545441f061cffafe8ca93db2377240a06
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun May 23 11:59:00 2021 -0400

    add compatibility field for software list filtering.
2021-05-27 19:42:28 -04:00
Kelvin Sherlock e48e2a9223 add mac 68k wiki link 2021-05-18 17:51:53 -04:00
Kelvin Sherlock a8e03a9490 support for -share_directory (booti card). No UI support yet, though. 2021-05-16 11:06:12 -04:00
Kelvin Sherlock 5e87627251 log window - add button to clear the log 2021-05-16 11:00:33 -04:00
Kelvin Sherlock 41de913e5f a2 - booti card. mac - built-in scsi now configurable, remove oddball cd devices 2021-05-16 00:21:15 -04:00
Kelvin Sherlock 5f3c346562 new mame archive.org link and components date 2021-04-28 23:54:09 -04:00
Kelvin Sherlock d992b6960d bump version, change numbering to match embedded MAME 2021-04-28 23:23:51 -04:00
Kelvin Sherlock bc9e156af0 mame 0.231 update 2021-04-28 23:18:41 -04:00
Kelvin Sherlock 9be960bb8e project fix for archiving. 2021-03-30 22:20:45 -04:00
Kelvin Sherlock f3680e0309 version bump 2021-03-30 22:12:27 -04:00
Kelvin Sherlock 2465b38916 commentary. 2021-03-30 21:21:30 -04:00
Kelvin Sherlock cafecda333 switch the default mac II from mac lc to mac iix 2021-03-30 21:21:12 -04:00
Kelvin Sherlock 2e6edaba1b add back the software list. 2021-03-28 18:50:55 -04:00
Kelvin Sherlock 94dfbc6e3e mac2fdhd needed as parent of se/30, etc. 2021-03-26 22:21:56 -04:00
Kelvin Sherlock 821a84923f add new machine definitions 2021-03-26 22:13:59 -04:00
Kelvin Sherlock 311a3461f6 add some more macintosh models
also change the default compact model from mac128 to macse30
2021-03-26 22:06:39 -04:00
Kelvin Sherlock 88c12a4832 add pty_shell command.
note that c modules had to be disabled in the build settings due to #define TTYDEFCHARS.
2021-03-26 21:16:18 -04:00
Kelvin Sherlock 6ca897739a add support for mac 128k family 2021-03-19 17:24:38 -04:00
Kelvin Sherlock 2a0462cc41 sort slots by name in the plist files. 2021-03-19 17:23:41 -04:00
Kelvin Sherlock fe0d690f87 improved submachine loading and more slot options for cards 2021-03-19 16:46:32 -04:00
Kelvin Sherlock ffb76a31f9 caution image - not yet used. 2021-03-18 23:12:50 -04:00
Kelvin Sherlock 123a51d52f transparent scroller 2021-03-15 16:43:12 -04:00
Kelvin Sherlock f89c932b77 disk drive slot
3.5" and 5.25" floppy drives that are configurable via a slot now have a UI in Ample.

<device> media (//c+, a2diskii, mac*, cassettes, etc) are not adjustable.
2021-03-14 16:02:53 -04:00
Kelvin Sherlock 0d13fa7167 add tk3000 2021-03-14 13:23:43 -04:00
Kelvin Sherlock e1eecac557 add lcd-grid filter 2021-03-13 15:44:52 -05:00
Kelvin Sherlock f8b3a1d882 integer x 2021-03-13 11:26:17 -05:00
Kelvin Sherlock 9e5b8d45ca source list highlighting on the rom list 2021-03-13 11:23:46 -05:00
Kelvin Sherlock e975980a3a tweak the disk images colors a little bit 2021-03-13 11:16:49 -05:00
Kelvin Sherlock 6177001a4c -nosample support to eliminate disk sound effects. 2021-03-12 20:09:59 -05:00
Kelvin Sherlock b2907eda08 update rom list. 2021-03-12 19:58:44 -05:00
Kelvin Sherlock 48cdd702be pop up for child slots. 2021-03-12 19:58:12 -05:00
Kelvin Sherlock 2f514a1db3 stat working on a pop up for card slots 2021-03-10 18:37:59 -05:00
Kelvin Sherlock d37fb49781 display slot submenus. i don't particularly like the UI so it will probably change soon. 2021-03-09 22:58:01 -05:00
Kelvin Sherlock 34970cb476 move slots (and ram) into a slots bucket in the machine description. devices with media are also includes (in the device bucket).
In preparation for a UI to edit the subslots.
2021-03-09 22:22:24 -05:00
Kelvin Sherlock 9626a6588f base the export shell script default name on the machine name. 2021-03-08 21:15:15 -05:00
Kelvin Sherlock dc7adde938 auto set the rpath in mame64.
I would prefer to do it after copying but the copy also codesigns.
2021-03-08 19:42:12 -05:00
Kelvin Sherlock 328ab815fb Squashed commit of the following:
commit a91a858d68c845f74db106dd21a800c4d09e6e38
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 22:49:42 2021 -0500

    listxml utility.

commit e52576797da2609e700a12d1ffd7c78e8f1c2b23
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 22:34:00 2021 -0500

    update media to use a structure instead of passing around dictionaries.

commit 9277a0f720091c386812ac5f84d96080fe6e14f3
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 20:13:27 2021 -0500

    media is working again.

commit 7c0ac9a973df85fdcdaa978f80905cb9e8532ea5
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 18:46:38 2021 -0500

    use new slot objects [WIP]

commit 005e2f14d37e7b83ac4ab3e60e7fb794ac8ed651
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 17:33:59 2021 -0500

    new slot code to make sub options easier.

commit d7f3d9ef75367fad15081789a33212b7cf928fb3
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date:   Sun Mar 7 17:33:13 2021 -0500

    String Interning...
2021-03-08 18:59:02 -05:00
129 changed files with 316009 additions and 153849 deletions
+352 -71
View File
@@ -58,6 +58,36 @@
B6109A4124F5F377005CB652 /* apple2cp.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A1424F5F376005CB652 /* apple2cp.plist */; };
B6109A4224F5F377005CB652 /* apple2p.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A1524F5F376005CB652 /* apple2p.plist */; };
B6109A4324F5F377005CB652 /* agat7.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6109A1624F5F376005CB652 /* agat7.plist */; };
B6152B5625F4549F00605E6E /* Slot.m in Sources */ = {isa = PBXBuildFile; fileRef = B6152B5525F4549F00605E6E /* Slot.m */; };
B6152B5725F4549F00605E6E /* Slot.m in Sources */ = {isa = PBXBuildFile; fileRef = B6152B5525F4549F00605E6E /* Slot.m */; };
B6152B5A25F5B57E00605E6E /* Media.m in Sources */ = {isa = PBXBuildFile; fileRef = B6152B5925F5B57E00605E6E /* Media.m */; };
B6152B5B25F5B57E00605E6E /* Media.m in Sources */ = {isa = PBXBuildFile; fileRef = B6152B5925F5B57E00605E6E /* Media.m */; };
B615A99F26640940001FBF99 /* SlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E9A18125088B36005E7525 /* SlotView.xib */; };
B615A9A026640A70001FBF99 /* SlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E9A17F25088B1B005E7525 /* SlotViewController.m */; };
B63005332666D6940014C381 /* BookmarkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B63005322666D6940014C381 /* BookmarkManager.m */; };
B63005342666D6940014C381 /* BookmarkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B63005322666D6940014C381 /* BookmarkManager.m */; };
B6374AC4260EBBCF0045CA16 /* pty_shell.c in Sources */ = {isa = PBXBuildFile; fileRef = B6374AB6260EBB970045CA16 /* pty_shell.c */; };
B6374AC5260EBC5A0045CA16 /* pty_shell in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6374ABD260EBBC90045CA16 /* pty_shell */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
B6374AD1260ECB400045CA16 /* macclas2.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AC9260ECB3F0045CA16 /* macclas2.plist */; };
B6374AD2260ECB400045CA16 /* macclas2.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AC9260ECB3F0045CA16 /* macclas2.plist */; };
B6374AD3260ECB400045CA16 /* macii.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACA260ECB3F0045CA16 /* macii.plist */; };
B6374AD4260ECB400045CA16 /* macii.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACA260ECB3F0045CA16 /* macii.plist */; };
B6374AD5260ECB400045CA16 /* maciisi.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACB260ECB3F0045CA16 /* maciisi.plist */; };
B6374AD6260ECB400045CA16 /* maciisi.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACB260ECB3F0045CA16 /* maciisi.plist */; };
B6374AD7260ECB400045CA16 /* maciivi.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACC260ECB3F0045CA16 /* maciivi.plist */; };
B6374AD8260ECB400045CA16 /* maciivi.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACC260ECB3F0045CA16 /* maciivi.plist */; };
B6374AD9260ECB400045CA16 /* maciicx.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACD260ECB3F0045CA16 /* maciicx.plist */; };
B6374ADA260ECB400045CA16 /* maciicx.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACD260ECB3F0045CA16 /* maciicx.plist */; };
B6374ADB260ECB400045CA16 /* maciix.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACE260ECB3F0045CA16 /* maciix.plist */; };
B6374ADC260ECB400045CA16 /* maciix.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACE260ECB3F0045CA16 /* maciix.plist */; };
B6374ADD260ECB400045CA16 /* maciivx.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACF260ECB3F0045CA16 /* maciivx.plist */; };
B6374ADE260ECB400045CA16 /* maciivx.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374ACF260ECB3F0045CA16 /* maciivx.plist */; };
B6374ADF260ECB400045CA16 /* macse30.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AD0260ECB400045CA16 /* macse30.plist */; };
B6374AE0260ECB400045CA16 /* macse30.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AD0260ECB400045CA16 /* macse30.plist */; };
B6374AE3260ECDDD0045CA16 /* maciihmu.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AE1260ECDDD0045CA16 /* maciihmu.plist */; };
B6374AE4260ECDDD0045CA16 /* maciihmu.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AE1260ECDDD0045CA16 /* maciihmu.plist */; };
B6374AE5260ECDDD0045CA16 /* mac2fdhd.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AE2260ECDDD0045CA16 /* mac2fdhd.plist */; };
B6374AE6260ECDDD0045CA16 /* mac2fdhd.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6374AE2260ECDDD0045CA16 /* mac2fdhd.plist */; };
B63C1B8B24FF4BF700511A71 /* Ample.m in Sources */ = {isa = PBXBuildFile; fileRef = B63C1B8A24FF4BF700511A71 /* Ample.m */; };
B63C1B8C24FF4BF700511A71 /* Ample.m in Sources */ = {isa = PBXBuildFile; fileRef = B63C1B8A24FF4BF700511A71 /* Ample.m */; };
B63C1B8E25004C6D00511A71 /* mame-data.tgz in Resources */ = {isa = PBXBuildFile; fileRef = B63C1B8D25004C6D00511A71 /* mame-data.tgz */; };
@@ -84,6 +114,8 @@
B63C1F1025B1447C0016A611 /* CheatSheetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */; };
B63C1F1225B147E10016A611 /* CheatSheet.html in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F1125B147E10016A611 /* CheatSheet.html */; };
B63C1F1325B147E10016A611 /* CheatSheet.html in Resources */ = {isa = PBXBuildFile; fileRef = B63C1F1125B147E10016A611 /* CheatSheet.html */; };
B646D10B263A5DF30014C586 /* ace1000.plist in Resources */ = {isa = PBXBuildFile; fileRef = B646D10A263A5DF20014C586 /* ace1000.plist */; };
B646D10C263A5DF30014C586 /* ace1000.plist in Resources */ = {isa = PBXBuildFile; fileRef = B646D10A263A5DF20014C586 /* ace1000.plist */; };
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B64979C124EF6703008ABD20 /* MediaViewController.m */; };
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
B64AF1EF250EC35B00A09B9B /* DiskImages.xib in Resources */ = {isa = PBXBuildFile; fileRef = B64AF1EC250EC35B00A09B9B /* DiskImages.xib */; };
@@ -105,6 +137,12 @@
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */; };
B66236B524FDA527006CABD7 /* SDL2.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = B66236B224FDA522006CABD7 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
B66236C124FDB7A6006CABD7 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = B66236BF24FDB7A6006CABD7 /* Credits.rtf */; };
B6665C14265A0E3E00254939 /* AutocompleteControl.m in Sources */ = {isa = PBXBuildFile; fileRef = B6665C13265A0E3E00254939 /* AutocompleteControl.m */; };
B6665C15265A0E3E00254939 /* AutocompleteControl.m in Sources */ = {isa = PBXBuildFile; fileRef = B6665C13265A0E3E00254939 /* AutocompleteControl.m */; };
B6665C1C265C639A00254939 /* Autocomplete.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6665C1A265C639900254939 /* Autocomplete.xib */; };
B6665C1D265C639A00254939 /* Autocomplete.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6665C1A265C639900254939 /* Autocomplete.xib */; };
B66D0FE72611386C000902F1 /* SoftwareList.m in Sources */ = {isa = PBXBuildFile; fileRef = B66D0FE62611386B000902F1 /* SoftwareList.m */; };
B66D0FE82611386C000902F1 /* SoftwareList.m in Sources */ = {isa = PBXBuildFile; fileRef = B66D0FE62611386B000902F1 /* SoftwareList.m */; };
B6841BD7251EC926006A5C39 /* vmnet_helper.c in Sources */ = {isa = PBXBuildFile; fileRef = B6841BCA251EC88E006A5C39 /* vmnet_helper.c */; };
B6841BDA251ECB1C006A5C39 /* mame64 in CopyFiles */ = {isa = PBXBuildFile; fileRef = B66236B824FDA698006CABD7 /* mame64 */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
B6841BDE251ECC29006A5C39 /* vmnet.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B6841BDD251ECC29006A5C39 /* vmnet.framework */; };
@@ -140,6 +178,27 @@
B6DDECD52505A86E0093587A /* eject-hover-16x16@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */; };
B6DDECD62505A86E0093587A /* eject-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCB2505A86E0093587A /* eject-16x16.png */; };
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DDECCB2505A86E0093587A /* eject-16x16.png */; };
B6DE323325FE7BD400418375 /* tk3000.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323225FE7BD400418375 /* tk3000.plist */; };
B6DE323626044C1100418375 /* caution@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323426044C1000418375 /* caution@2x.png */; };
B6DE323726044C1100418375 /* caution@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323426044C1000418375 /* caution@2x.png */; };
B6DE323826044C1100418375 /* caution.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323526044C1100418375 /* caution.png */; };
B6DE323926044C1100418375 /* caution.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323526044C1100418375 /* caution.png */; };
B6DE323B26044DB800418375 /* caution@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323A26044DB800418375 /* caution@3x.png */; };
B6DE323C26044DB800418375 /* caution@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323A26044DB800418375 /* caution@3x.png */; };
B6DE32442605482500418375 /* mac128k.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323D2605482400418375 /* mac128k.plist */; };
B6DE32452605482500418375 /* mac128k.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323D2605482400418375 /* mac128k.plist */; };
B6DE32462605482500418375 /* macclasc.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323E2605482400418375 /* macclasc.plist */; };
B6DE32472605482500418375 /* macclasc.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323E2605482400418375 /* macclasc.plist */; };
B6DE32482605482500418375 /* mac512ke.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323F2605482400418375 /* mac512ke.plist */; };
B6DE32492605482500418375 /* mac512ke.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE323F2605482400418375 /* mac512ke.plist */; };
B6DE324A2605482500418375 /* macsefd.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32402605482500418375 /* macsefd.plist */; };
B6DE324B2605482500418375 /* macsefd.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32402605482500418375 /* macsefd.plist */; };
B6DE324C2605482500418375 /* macplus.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32412605482500418375 /* macplus.plist */; };
B6DE324D2605482500418375 /* macplus.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32412605482500418375 /* macplus.plist */; };
B6DE324E2605482500418375 /* mac512k.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32422605482500418375 /* mac512k.plist */; };
B6DE324F2605482500418375 /* mac512k.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32422605482500418375 /* mac512k.plist */; };
B6DE32502605482500418375 /* macse.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32432605482500418375 /* macse.plist */; };
B6DE32512605482500418375 /* macse.plist in Resources */ = {isa = PBXBuildFile; fileRef = B6DE32432605482500418375 /* macse.plist */; };
B6E08076252574690075F4E1 /* vmnet_helper in CopyFiles */ = {isa = PBXBuildFile; fileRef = B6841BD0251EC913006A5C39 /* vmnet_helper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
B6E4B5B024FDE2670094A35C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B6BA258724E99BEB005FB8FF /* main.m */; };
B6E4B5B124FDE2670094A35C /* LaunchWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6D6DE4024FADFAC00661A5F /* LaunchWindowController.m */; };
@@ -202,11 +261,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 */; };
B6E9A18025088B1B005E7525 /* NewSlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */; };
B6E9A18325088B36005E7525 /* NewSlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E9A18125088B36005E7525 /* NewSlotView.xib */; };
B6E9A18025088B1B005E7525 /* SlotViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B6E9A17F25088B1B005E7525 /* SlotViewController.m */; };
B6E9A18325088B36005E7525 /* SlotView.xib in Resources */ = {isa = PBXBuildFile; fileRef = B6E9A18125088B36005E7525 /* SlotView.xib */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
B6374ABB260EBBC90045CA16 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = /usr/share/man/man1/;
dstSubfolderSpec = 0;
files = (
);
runOnlyForDeploymentPostprocessing = 1;
};
B66236B124FDA443006CABD7 /* Embed Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
@@ -226,6 +294,7 @@
files = (
B6841BDA251ECB1C006A5C39 /* mame64 in CopyFiles */,
B6E08076252574690075F4E1 /* vmnet_helper in CopyFiles */,
B6374AC5260EBC5A0045CA16 /* pty_shell in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -256,10 +325,8 @@
B6004DEF24FB05D600D38596 /* LogWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = LogWindow.xib; path = Base.lproj/LogWindow.xib; sourceTree = "<group>"; };
B608E17D2502FE0C00D53465 /* TransparentScroller.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TransparentScroller.h; sourceTree = "<group>"; };
B608E17E2502FE0C00D53465 /* TransparentScroller.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TransparentScroller.m; sourceTree = "<group>"; };
B60A6E0B24ECE23F004B7EEF /* apple2gs.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple2gs.plist; sourceTree = "<group>"; };
B60A6E1224EE0AE2004B7EEF /* FlippedView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlippedView.h; sourceTree = "<group>"; };
B60A6E1324EE0AE2004B7EEF /* FlippedView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FlippedView.m; sourceTree = "<group>"; };
B61099E424F5F230005CB652 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/SlotView.xib; sourceTree = "<group>"; };
B61099E624F5F230005CB652 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MediaView.xib; sourceTree = "<group>"; };
B61099EA24F5F36E005CB652 /* apple2e.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple2e.plist; sourceTree = "<group>"; };
B61099EB24F5F36E005CB652 /* hkc8800a.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = hkc8800a.plist; sourceTree = "<group>"; };
@@ -306,6 +373,24 @@
B6109A1424F5F376005CB652 /* apple2cp.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple2cp.plist; sourceTree = "<group>"; };
B6109A1524F5F376005CB652 /* apple2p.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple2p.plist; sourceTree = "<group>"; };
B6109A1624F5F376005CB652 /* agat7.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = agat7.plist; sourceTree = "<group>"; };
B6152B5425F4549F00605E6E /* Slot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Slot.h; sourceTree = "<group>"; };
B6152B5525F4549F00605E6E /* Slot.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Slot.m; sourceTree = "<group>"; };
B6152B5825F5B4F100605E6E /* Media.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Media.h; sourceTree = "<group>"; };
B6152B5925F5B57E00605E6E /* Media.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Media.m; sourceTree = "<group>"; };
B63005312666D6940014C381 /* BookmarkManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BookmarkManager.h; sourceTree = "<group>"; };
B63005322666D6940014C381 /* BookmarkManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BookmarkManager.m; sourceTree = "<group>"; };
B6374AB6260EBB970045CA16 /* pty_shell.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pty_shell.c; sourceTree = "<group>"; };
B6374ABD260EBBC90045CA16 /* pty_shell */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = pty_shell; sourceTree = BUILT_PRODUCTS_DIR; };
B6374AC9260ECB3F0045CA16 /* macclas2.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macclas2.plist; sourceTree = "<group>"; };
B6374ACA260ECB3F0045CA16 /* macii.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macii.plist; sourceTree = "<group>"; };
B6374ACB260ECB3F0045CA16 /* maciisi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciisi.plist; sourceTree = "<group>"; };
B6374ACC260ECB3F0045CA16 /* maciivi.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciivi.plist; sourceTree = "<group>"; };
B6374ACD260ECB3F0045CA16 /* maciicx.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciicx.plist; sourceTree = "<group>"; };
B6374ACE260ECB3F0045CA16 /* maciix.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciix.plist; sourceTree = "<group>"; };
B6374ACF260ECB3F0045CA16 /* maciivx.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciivx.plist; sourceTree = "<group>"; };
B6374AD0260ECB400045CA16 /* macse30.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macse30.plist; sourceTree = "<group>"; };
B6374AE1260ECDDD0045CA16 /* maciihmu.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciihmu.plist; sourceTree = "<group>"; };
B6374AE2260ECDDD0045CA16 /* mac2fdhd.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mac2fdhd.plist; sourceTree = "<group>"; };
B63C1B8924FF4B7100511A71 /* Ample.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ample.h; sourceTree = "<group>"; };
B63C1B8A24FF4BF700511A71 /* Ample.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Ample.m; sourceTree = "<group>"; };
B63C1B8D25004C6D00511A71 /* mame-data.tgz */ = {isa = PBXFileReference; lastKnownFileType = file; name = "mame-data.tgz"; path = "embedded/mame-data.tgz"; sourceTree = "<group>"; };
@@ -323,6 +408,7 @@
B63C1F0D25B1447C0016A611 /* CheatSheetWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CheatSheetWindowController.h; sourceTree = "<group>"; };
B63C1F0E25B1447C0016A611 /* CheatSheetWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CheatSheetWindowController.m; sourceTree = "<group>"; };
B63C1F1125B147E10016A611 /* CheatSheet.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = CheatSheet.html; sourceTree = "<group>"; };
B646D10A263A5DF20014C586 /* ace1000.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = ace1000.plist; sourceTree = "<group>"; };
B64979C024EF6703008ABD20 /* MediaViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MediaViewController.h; sourceTree = "<group>"; };
B64979C124EF6703008ABD20 /* MediaViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MediaViewController.m; sourceTree = "<group>"; };
B64AF1ED250EC35B00A09B9B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DiskImages.xib; sourceTree = "<group>"; };
@@ -337,15 +423,17 @@
B65085B625B616AC00354EC9 /* maclc2.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maclc2.plist; sourceTree = "<group>"; };
B65085B725B616AC00354EC9 /* maclc3.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maclc3.plist; sourceTree = "<group>"; };
B65085B825B616AC00354EC9 /* maciici.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = maciici.plist; sourceTree = "<group>"; };
B65593AF24ECB61800722E0C /* SlotViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SlotViewController.h; sourceTree = "<group>"; };
B65593B024ECB61800722E0C /* SlotViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SlotViewController.m; sourceTree = "<group>"; };
B65D718525E70BD5008C5F87 /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; };
B66236A724FD9A34006CABD7 /* PreferencesWindowController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PreferencesWindowController.h; sourceTree = "<group>"; };
B66236A824FD9A34006CABD7 /* PreferencesWindowController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PreferencesWindowController.m; sourceTree = "<group>"; };
B66236B224FDA522006CABD7 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = embedded/SDL2.framework; sourceTree = "<group>"; };
B66236B824FDA698006CABD7 /* mame64 */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = mame64; path = embedded/mame64; sourceTree = "<group>"; };
B66236C024FDB7A6006CABD7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Base; path = Base.lproj/Credits.rtf; sourceTree = "<group>"; };
B67BD48424EE249D0073E334 /* apple1.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = apple1.plist; sourceTree = "<group>"; };
B6665C12265A0E3E00254939 /* AutocompleteControl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutocompleteControl.h; sourceTree = "<group>"; };
B6665C13265A0E3E00254939 /* AutocompleteControl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AutocompleteControl.m; sourceTree = "<group>"; };
B6665C1B265C639900254939 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/Autocomplete.xib; sourceTree = "<group>"; };
B66D0FE62611386B000902F1 /* SoftwareList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SoftwareList.m; sourceTree = "<group>"; };
B66D0FE926113AA8000902F1 /* SoftwareList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SoftwareList.h; sourceTree = "<group>"; };
B6841BCA251EC88E006A5C39 /* vmnet_helper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = vmnet_helper.c; sourceTree = "<group>"; };
B6841BD0251EC913006A5C39 /* vmnet_helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = vmnet_helper; sourceTree = BUILT_PRODUCTS_DIR; };
B6841BDD251ECC29006A5C39 /* vmnet.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = vmnet.framework; path = System/Library/Frameworks/vmnet.framework; sourceTree = SDKROOT; };
@@ -376,13 +464,31 @@
B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-hover-16x16@2x.png"; sourceTree = "<group>"; };
B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-hover-16x16@3x.png"; sourceTree = "<group>"; };
B6DDECCB2505A86E0093587A /* eject-16x16.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "eject-16x16.png"; sourceTree = "<group>"; };
B6DE323225FE7BD400418375 /* tk3000.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = tk3000.plist; sourceTree = "<group>"; };
B6DE323426044C1000418375 /* caution@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "caution@2x.png"; sourceTree = "<group>"; };
B6DE323526044C1100418375 /* caution.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = caution.png; sourceTree = "<group>"; };
B6DE323A26044DB800418375 /* caution@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "caution@3x.png"; sourceTree = "<group>"; };
B6DE323D2605482400418375 /* mac128k.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mac128k.plist; sourceTree = "<group>"; };
B6DE323E2605482400418375 /* macclasc.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macclasc.plist; sourceTree = "<group>"; };
B6DE323F2605482400418375 /* mac512ke.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = mac512ke.plist; sourceTree = "<group>"; };
B6DE32402605482500418375 /* macsefd.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macsefd.plist; sourceTree = "<group>"; };
B6DE32412605482500418375 /* macplus.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = macplus.plist; sourceTree = "<group>"; };
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; };
B6E9A17E25088B1B005E7525 /* NewSlotViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NewSlotViewController.h; sourceTree = "<group>"; };
B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NewSlotViewController.m; sourceTree = "<group>"; };
B6E9A18225088B36005E7525 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NewSlotView.xib; 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>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
B6374ABA260EBBC90045CA16 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
B6841BCD251EC913006A5C39 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
@@ -410,11 +516,17 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
B6374AB2260EBB970045CA16 /* pty_shell */ = {
isa = PBXGroup;
children = (
B6374AB6260EBB970045CA16 /* pty_shell.c */,
);
path = pty_shell;
sourceTree = "<group>";
};
B649798C24EEC165008ABD20 /* Recovered References */ = {
isa = PBXGroup;
children = (
B67BD48424EE249D0073E334 /* apple1.plist */,
B60A6E0B24ECE23F004B7EEF /* apple2gs.plist */,
);
name = "Recovered References";
sourceTree = "<group>";
@@ -422,14 +534,8 @@
B64E15AF24EA365E00E8AD3D /* Resources */ = {
isa = PBXGroup;
children = (
B63C1B8F250088DC00511A71 /* roms.plist */,
B63C1B9B250192D800511A71 /* cec2000.plist */,
B63C1B98250192D700511A71 /* cece.plist */,
B63C1B9A250192D700511A71 /* cecg.plist */,
B63C1B99250192D700511A71 /* ceci.plist */,
B63C1B9C250192D800511A71 /* cecm.plist */,
B63C1BA7250192E600511A71 /* zijini.plist */,
B6109A0824F5F373005CB652 /* ace100.plist */,
B646D10A263A5DF20014C586 /* ace1000.plist */,
B6109A1624F5F376005CB652 /* agat7.plist */,
B6109A1224F5F375005CB652 /* agat9.plist */,
B6109A1124F5F375005CB652 /* albert.plist */,
@@ -453,6 +559,12 @@
B6109A1524F5F376005CB652 /* apple2p.plist */,
B61099FD24F5F370005CB652 /* apple3.plist */,
B6109A0524F5F372005CB652 /* basis108.plist */,
B63C1B9B250192D800511A71 /* cec2000.plist */,
B63C1B98250192D700511A71 /* cece.plist */,
B63C1B9A250192D700511A71 /* cecg.plist */,
B63C1B99250192D700511A71 /* ceci.plist */,
B63C1B9C250192D800511A71 /* cecm.plist */,
B63C1F1125B147E10016A611 /* CheatSheet.html */,
B6109A1324F5F375005CB652 /* craft2p.plist */,
B6109A0924F5F373005CB652 /* dodo.plist */,
B61099FE24F5F370005CB652 /* elppa.plist */,
@@ -469,16 +581,35 @@
B6109A0C24F5F374005CB652 /* prav8c.plist */,
B6109A0024F5F371005CB652 /* prav8m.plist */,
B6109A0D24F5F374005CB652 /* prav82.plist */,
B63C1B8F250088DC00511A71 /* roms.plist */,
B61099F024F5F36E005CB652 /* space84.plist */,
B61099FF24F5F371005CB652 /* spectred.plist */,
B6DE323225FE7BD400418375 /* tk3000.plist */,
B61099FA24F5F370005CB652 /* uniap2en.plist */,
B61099EE24F5F36E005CB652 /* uniap2pt.plist */,
B6109A0224F5F371005CB652 /* uniap2ti.plist */,
B6DD1FE725B407E6004A3242 /* maclc.plist */,
B63C1BA7250192E600511A71 /* zijini.plist */,
B6DE323D2605482400418375 /* mac128k.plist */,
B6374AE2260ECDDD0045CA16 /* mac2fdhd.plist */,
B6DE32422605482500418375 /* mac512k.plist */,
B6DE323F2605482400418375 /* mac512ke.plist */,
B6374AC9260ECB3F0045CA16 /* macclas2.plist */,
B6DE323E2605482400418375 /* macclasc.plist */,
B6374ACA260ECB3F0045CA16 /* macii.plist */,
B65085B825B616AC00354EC9 /* maciici.plist */,
B6374ACD260ECB3F0045CA16 /* maciicx.plist */,
B6374ACB260ECB3F0045CA16 /* maciisi.plist */,
B6374ACC260ECB3F0045CA16 /* maciivi.plist */,
B6374ACF260ECB3F0045CA16 /* maciivx.plist */,
B6374ACE260ECB3F0045CA16 /* maciix.plist */,
B6374AE1260ECDDD0045CA16 /* maciihmu.plist */,
B6DD1FE725B407E6004A3242 /* maclc.plist */,
B65085B625B616AC00354EC9 /* maclc2.plist */,
B65085B725B616AC00354EC9 /* maclc3.plist */,
B63C1F1125B147E10016A611 /* CheatSheet.html */,
B6DE32412605482500418375 /* macplus.plist */,
B6DE32432605482500418375 /* macse.plist */,
B6374AD0260ECB400045CA16 /* macse30.plist */,
B6DE32402605482500418375 /* macsefd.plist */,
);
path = Resources;
sourceTree = "<group>";
@@ -516,6 +647,7 @@
B6BA257D24E99BE9005FB8FF /* Ample */,
B66236BD24FDA7EA006CABD7 /* Embedded Content */,
B6841BD1251EC913006A5C39 /* vmnet_helper */,
B6374AB2260EBB970045CA16 /* pty_shell */,
B6BA257C24E99BE9005FB8FF /* Products */,
B649798C24EEC165008ABD20 /* Recovered References */,
B66236B624FDA686006CABD7 /* Frameworks */,
@@ -528,6 +660,7 @@
B6BA257B24E99BE9005FB8FF /* Ample.app */,
B6E4B5FA24FDE2670094A35C /* Ample Lite.app */,
B6841BD0251EC913006A5C39 /* vmnet_helper */,
B6374ABD260EBBC90045CA16 /* pty_shell */,
);
name = Products;
sourceTree = "<group>";
@@ -535,18 +668,22 @@
B6BA257D24E99BE9005FB8FF /* Ample */ = {
isa = PBXGroup;
children = (
B6665C12265A0E3E00254939 /* AutocompleteControl.h */,
B6665C13265A0E3E00254939 /* AutocompleteControl.m */,
B6BA257E24E99BE9005FB8FF /* AppDelegate.h */,
B6BA257F24E99BE9005FB8FF /* AppDelegate.m */,
B63C1B8924FF4B7100511A71 /* Ample.h */,
B63C1B8A24FF4BF700511A71 /* Ample.m */,
B64AF1F4250ED5E400A09B9B /* TableCellView.h */,
B64AF1F5250ED5E400A09B9B /* TableCellView.m */,
B6E9A17E25088B1B005E7525 /* NewSlotViewController.h */,
B6E9A17F25088B1B005E7525 /* NewSlotViewController.m */,
B6152B5425F4549F00605E6E /* Slot.h */,
B6152B5525F4549F00605E6E /* Slot.m */,
B6152B5825F5B4F100605E6E /* Media.h */,
B6152B5925F5B57E00605E6E /* Media.m */,
B6E9A17E25088B1B005E7525 /* SlotViewController.h */,
B6E9A17F25088B1B005E7525 /* SlotViewController.m */,
B6A1A1932528EB1700DB0FD7 /* Menu.m */,
B6A1A1962528EB4600DB0FD7 /* Menu.h */,
B65593B024ECB61800722E0C /* SlotViewController.m */,
B65593AF24ECB61800722E0C /* SlotViewController.h */,
B64979C024EF6703008ABD20 /* MediaViewController.h */,
B64979C124EF6703008ABD20 /* MediaViewController.m */,
B64E15A724EA1D5300E8AD3D /* MachineViewController.h */,
@@ -555,6 +692,10 @@
B60A6E1224EE0AE2004B7EEF /* FlippedView.h */,
B608E17D2502FE0C00D53465 /* TransparentScroller.h */,
B608E17E2502FE0C00D53465 /* TransparentScroller.m */,
B66D0FE62611386B000902F1 /* SoftwareList.m */,
B66D0FE926113AA8000902F1 /* SoftwareList.h */,
B63005312666D6940014C381 /* BookmarkManager.h */,
B63005322666D6940014C381 /* BookmarkManager.m */,
B6BA563A251685DA00B0C47D /* Window Controllers */,
B6B9EA652506A5550080E70D /* EjectButton.h */,
B6B9EA642506A5550080E70D /* EjectButton.m */,
@@ -594,7 +735,8 @@
B6D6DE4224FAEE8900661A5F /* Nibs */ = {
isa = PBXGroup;
children = (
B6E9A18125088B36005E7525 /* NewSlotView.xib */,
B6665C1A265C639900254939 /* Autocomplete.xib */,
B6E9A18125088B36005E7525 /* SlotView.xib */,
B63C1B9325008A2700511A71 /* DownloadWindow.xib */,
B66236BF24FDB7A6006CABD7 /* Credits.rtf */,
B6D6DE3C24FADF8B00661A5F /* LaunchWindow.xib */,
@@ -602,7 +744,6 @@
B6BA258324E99BEB005FB8FF /* MainMenu.xib */,
B61099E524F5F230005CB652 /* MediaView.xib */,
B6D6DE3724FAC8B500661A5F /* Preferences.xib */,
B61099E324F5F230005CB652 /* SlotView.xib */,
B64AF1EC250EC35B00A09B9B /* DiskImages.xib */,
B63C1F0925B143C50016A611 /* CheatSheet.xib */,
);
@@ -621,6 +762,9 @@
B6DDECC82505A86E0093587A /* eject-hover-16x16.png */,
B6DDECC92505A86E0093587A /* eject-hover-16x16@2x.png */,
B6DDECCA2505A86E0093587A /* eject-hover-16x16@3x.png */,
B6DE323526044C1100418375 /* caution.png */,
B6DE323426044C1000418375 /* caution@2x.png */,
B6DE323A26044DB800418375 /* caution@3x.png */,
);
path = images;
sourceTree = "<group>";
@@ -628,6 +772,23 @@
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
B6374ABC260EBBC90045CA16 /* pty_shell */ = {
isa = PBXNativeTarget;
buildConfigurationList = B6374AC1260EBBC90045CA16 /* Build configuration list for PBXNativeTarget "pty_shell" */;
buildPhases = (
B6374AB9260EBBC90045CA16 /* Sources */,
B6374ABA260EBBC90045CA16 /* Frameworks */,
B6374ABB260EBBC90045CA16 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = pty_shell;
productName = pty_shell;
productReference = B6374ABD260EBBC90045CA16 /* pty_shell */;
productType = "com.apple.product-type.tool";
};
B6841BCF251EC913006A5C39 /* vmnet_helper */ = {
isa = PBXNativeTarget;
buildConfigurationList = B6841BD4251EC913006A5C39 /* Build configuration list for PBXNativeTarget "vmnet_helper" */;
@@ -653,6 +814,7 @@
B6BA257824E99BE9005FB8FF /* Frameworks */,
B6BA257924E99BE9005FB8FF /* Resources */,
B66236B124FDA443006CABD7 /* Embed Frameworks */,
B6152B5C25F6F4F800605E6E /* ShellScript */,
B66236BB24FDA71D006CABD7 /* CopyFiles */,
);
buildRules = (
@@ -691,6 +853,9 @@
LastUpgradeCheck = 1130;
ORGANIZATIONNAME = "Kelvin Sherlock";
TargetAttributes = {
B6374ABC260EBBC90045CA16 = {
CreatedOnToolsVersion = 11.3.1;
};
B6841BCF251EC913006A5C39 = {
CreatedOnToolsVersion = 11.3.1;
};
@@ -715,6 +880,7 @@
B6BA257A24E99BE9005FB8FF /* Ample */,
B6E4B5AE24FDE2670094A35C /* Ample Lite */,
B6841BCF251EC913006A5C39 /* vmnet_helper */,
B6374ABC260EBBC90045CA16 /* pty_shell */,
);
};
/* End PBXProject section */
@@ -724,43 +890,69 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B6DDECD62505A86E0093587A /* eject-16x16.png in Resources */,
B6DDECCC2505A86E0093587A /* eject-16x16@2x.png in Resources */,
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */,
B6DDECD02505A86E0093587A /* eject-hover-16x16.png in Resources */,
B6DDECD22505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
B6DDECD42505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
B6DE323826044C1100418375 /* caution.png in Resources */,
B6DE323626044C1100418375 /* caution@2x.png in Resources */,
B6DE323B26044DB800418375 /* caution@3x.png in Resources */,
B6DDECC025057A550093587A /* drag-handle-4x10.png in Resources */,
B6DDECC225057A550093587A /* drag-handle-4x10@2x.png in Resources */,
B6DDECC425057A550093587A /* drag-handle-4x10@3x.png in Resources */,
B6BA258224E99BEB005FB8FF /* Assets.xcassets in Resources */,
B6D6DE3E24FADF8B00661A5F /* LaunchWindow.xib in Resources */,
B6004DF124FB05D600D38596 /* LogWindow.xib in Resources */,
B6BA258524E99BEB005FB8FF /* MainMenu.xib in Resources */,
B6665C1C265C639A00254939 /* Autocomplete.xib in Resources */,
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */,
B63C1B9625008A2700511A71 /* DownloadWindow.xib in Resources */,
B61099E824F5F231005CB652 /* MediaView.xib in Resources */,
B6E9A18325088B36005E7525 /* SlotView.xib in Resources */,
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
B63C1F0B25B143C50016A611 /* CheatSheet.xib in Resources */,
B6109A3324F5F377005CB652 /* apple2eeuk.plist in Resources */,
B6374ADB260ECB400045CA16 /* maciix.plist in Resources */,
B6109A2424F5F377005CB652 /* las128ex.plist in Resources */,
B646D10B263A5DF30014C586 /* ace1000.plist in Resources */,
B63C1BA8250192E600511A71 /* zijini.plist in Resources */,
B6109A1D24F5F377005CB652 /* space84.plist in Resources */,
B6374AD9260ECB400045CA16 /* maciicx.plist in Resources */,
B6109A3F24F5F377005CB652 /* agat9.plist in Resources */,
B63C1B9D250192D800511A71 /* cece.plist in Resources */,
B6D6DE3E24FADF8B00661A5F /* LaunchWindow.xib in Resources */,
B6109A3124F5F377005CB652 /* apple1.plist in Resources */,
B6374AD3260ECB400045CA16 /* macii.plist in Resources */,
B6109A3524F5F377005CB652 /* ace100.plist in Resources */,
B65085BB25B616AC00354EC9 /* maclc3.plist in Resources */,
B6109A3424F5F377005CB652 /* am64.plist in Resources */,
B6DDECCC2505A86E0093587A /* eject-16x16@2x.png in Resources */,
B6004DF124FB05D600D38596 /* LogWindow.xib in Resources */,
B6BA258224E99BEB005FB8FF /* Assets.xcassets in Resources */,
B6DE32462605482500418375 /* macclasc.plist in Resources */,
B6DE32502605482500418375 /* macse.plist in Resources */,
B6109A1724F5F377005CB652 /* apple2e.plist in Resources */,
B6109A3C24F5F377005CB652 /* am100.plist in Resources */,
B6DDECD02505A86E0093587A /* eject-hover-16x16.png in Resources */,
B6109A2524F5F377005CB652 /* laser2c.plist in Resources */,
B6109A3D24F5F377005CB652 /* laser128.plist in Resources */,
B6109A2824F5F377005CB652 /* apple2ep.plist in Resources */,
B6DDECC225057A550093587A /* drag-handle-4x10@2x.png in Resources */,
B6109A1924F5F377005CB652 /* apple2ees.plist in Resources */,
B6DE32482605482500418375 /* mac512ke.plist in Resources */,
B6109A3924F5F377005CB652 /* prav8c.plist in Resources */,
B6109A1C24F5F377005CB652 /* ivelultr.plist in Resources */,
B6DE323325FE7BD400418375 /* tk3000.plist in Resources */,
B6109A3824F5F377005CB652 /* maxxi.plist in Resources */,
B6374ADD260ECB400045CA16 /* maciivx.plist in Resources */,
B6DE32442605482500418375 /* mac128k.plist in Resources */,
B6109A2E24F5F377005CB652 /* apple2eefr.plist in Resources */,
B6109A2C24F5F377005CB652 /* spectred.plist in Resources */,
B6109A4124F5F377005CB652 /* apple2cp.plist in Resources */,
B6BA258524E99BEB005FB8FF /* MainMenu.xib in Resources */,
B6109A3A24F5F377005CB652 /* prav82.plist in Resources */,
B6DD1FE825B407E7004A3242 /* maclc.plist in Resources */,
B6109A2024F5F377005CB652 /* apple2euk.plist in Resources */,
B6DE324C2605482500418375 /* macplus.plist in Resources */,
B6109A2F24F5F377005CB652 /* uniap2ti.plist in Resources */,
B6DDECD42505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
B6DDECD62505A86E0093587A /* eject-16x16.png in Resources */,
B6109A1E24F5F377005CB652 /* apple2c.plist in Resources */,
B6109A1A24F5F377005CB652 /* microeng.plist in Resources */,
B6374AD5260ECB400045CA16 /* maciisi.plist in Resources */,
B6109A3E24F5F377005CB652 /* albert.plist in Resources */,
B66236C124FDB7A6006CABD7 /* Credits.rtf in Resources */,
B6109A4224F5F377005CB652 /* apple2p.plist in Resources */,
@@ -773,34 +965,31 @@
B63C1B9F250192D800511A71 /* ceci.plist in Resources */,
B6109A3224F5F377005CB652 /* basis108.plist in Resources */,
B6109A4324F5F377005CB652 /* agat7.plist in Resources */,
B6DDECC425057A550093587A /* drag-handle-4x10@3x.png in Resources */,
B6DE324E2605482500418375 /* mac512k.plist in Resources */,
B6109A2B24F5F377005CB652 /* elppa.plist in Resources */,
B63C1B8E25004C6D00511A71 /* mame-data.tgz in Resources */,
B6DDECCE2505A86E0093587A /* eject-16x16@3x.png in Resources */,
B64AF1EE250EC35B00A09B9B /* DiskImages.xib in Resources */,
B6109A3B24F5F377005CB652 /* apple2gsr1.plist in Resources */,
B65085BD25B616AC00354EC9 /* maciici.plist in Resources */,
B6374AE3260ECDDD0045CA16 /* maciihmu.plist in Resources */,
B6374ADF260ECB400045CA16 /* macse30.plist in Resources */,
B63C1F1225B147E10016A611 /* CheatSheet.html in Resources */,
B63C1B9625008A2700511A71 /* DownloadWindow.xib in Resources */,
B6D6DE3B24FACF4F00661A5F /* Defaults.plist in Resources */,
B6109A2224F5F377005CB652 /* models.plist in Resources */,
B6109A4024F5F377005CB652 /* craft2p.plist in Resources */,
B6109A1B24F5F377005CB652 /* uniap2pt.plist in Resources */,
B6109A3724F5F377005CB652 /* las128e2.plist in Resources */,
B61099E824F5F231005CB652 /* MediaView.xib in Resources */,
B6374AE5260ECDDD0045CA16 /* mac2fdhd.plist in Resources */,
B63C1B90250088DD00511A71 /* roms.plist in Resources */,
B6109A2724F5F377005CB652 /* uniap2en.plist in Resources */,
B6109A2A24F5F377005CB652 /* apple3.plist in Resources */,
B6109A2124F5F377005CB652 /* apple2ee.plist in Resources */,
B63C1BA5250192D800511A71 /* cecm.plist in Resources */,
B6E9A18325088B36005E7525 /* NewSlotView.xib in Resources */,
B6DDECC025057A550093587A /* drag-handle-4x10.png in Resources */,
B6DDECD22505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
B6109A3624F5F377005CB652 /* dodo.plist in Resources */,
B6D6DE3924FAC8B500661A5F /* Preferences.xib in Resources */,
B6109A2924F5F377005CB652 /* apple2gs.plist in Resources */,
B6109A1F24F5F377005CB652 /* apple2jp.plist in Resources */,
B63C1F0B25B143C50016A611 /* CheatSheet.xib in Resources */,
B6374AD7260ECB400045CA16 /* maciivi.plist in Resources */,
B6374AD1260ECB400045CA16 /* macclas2.plist in Resources */,
B6DE324A2605482500418375 /* macsefd.plist in Resources */,
B6109A3024F5F377005CB652 /* apple2.plist in Resources */,
B6109A2D24F5F377005CB652 /* prav8m.plist in Resources */,
);
@@ -810,34 +999,56 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */,
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */,
B6DDECCF2505A86E0093587A /* eject-16x16@3x.png in Resources */,
B6DDECD12505A86E0093587A /* eject-hover-16x16.png in Resources */,
B6DDECD32505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
B6DDECD52505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
B6DE323926044C1100418375 /* caution.png in Resources */,
B6DE323726044C1100418375 /* caution@2x.png in Resources */,
B6DE323C26044DB800418375 /* caution@3x.png in Resources */,
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */,
B6DDECC325057A550093587A /* drag-handle-4x10@2x.png in Resources */,
B6DDECC525057A550093587A /* drag-handle-4x10@3x.png in Resources */,
B6374AE6260ECDDD0045CA16 /* mac2fdhd.plist in Resources */,
B6374ADC260ECB400045CA16 /* maciix.plist in Resources */,
B6E4B5BC24FDE2670094A35C /* apple2eeuk.plist in Resources */,
B63C1BA0250192D800511A71 /* ceci.plist in Resources */,
B6E4B5BD24FDE2670094A35C /* las128ex.plist in Resources */,
B6E4B5BE24FDE2670094A35C /* space84.plist in Resources */,
B6DE324F2605482500418375 /* mac512k.plist in Resources */,
B63C1BA6250192D800511A71 /* cecm.plist in Resources */,
B6E4B5BF24FDE2670094A35C /* agat9.plist in Resources */,
B6E4B5C024FDE2670094A35C /* LaunchWindow.xib in Resources */,
B6665C1D265C639A00254939 /* Autocomplete.xib in Resources */,
B6E4B5C124FDE2670094A35C /* apple1.plist in Resources */,
B6E4B5C224FDE2670094A35C /* ace100.plist in Resources */,
B6374AD6260ECB400045CA16 /* maciisi.plist in Resources */,
B6DE32472605482500418375 /* macclasc.plist in Resources */,
B6E4B5C324FDE2670094A35C /* am64.plist in Resources */,
B6E4B5C424FDE2670094A35C /* LogWindow.xib in Resources */,
B6E4B5C524FDE2670094A35C /* Assets.xcassets in Resources */,
B6374AD4260ECB400045CA16 /* macii.plist in Resources */,
B6E4B5C624FDE2670094A35C /* apple2e.plist in Resources */,
B64AF1EF250EC35B00A09B9B /* DiskImages.xib in Resources */,
B63C1BA2250192D800511A71 /* cecg.plist in Resources */,
B6E4B5C724FDE2670094A35C /* am100.plist in Resources */,
B6E4B5C824FDE2670094A35C /* laser2c.plist in Resources */,
B6DDECC125057A550093587A /* drag-handle-4x10.png in Resources */,
B6374ADA260ECB400045CA16 /* maciicx.plist in Resources */,
B615A99F26640940001FBF99 /* SlotView.xib in Resources */,
B63C1F0C25B143C50016A611 /* CheatSheet.xib in Resources */,
B6374AE0260ECB400045CA16 /* macse30.plist in Resources */,
B6E4B5C924FDE2670094A35C /* laser128.plist in Resources */,
B646D10C263A5DF30014C586 /* ace1000.plist in Resources */,
B6E4B5CA24FDE2670094A35C /* apple2ep.plist in Resources */,
B6DDECCD2505A86E0093587A /* eject-16x16@2x.png in Resources */,
B6E4B5CB24FDE2670094A35C /* apple2ees.plist in Resources */,
B6E4B5CC24FDE2670094A35C /* prav8c.plist in Resources */,
B6E4B5CD24FDE2670094A35C /* ivelultr.plist in Resources */,
B6E4B5CE24FDE2670094A35C /* maxxi.plist in Resources */,
B6DE324B2605482500418375 /* macsefd.plist in Resources */,
B6E4B5CF24FDE2670094A35C /* apple2eefr.plist in Resources */,
B6374AD8260ECB400045CA16 /* maciivi.plist in Resources */,
B6E4B5D124FDE2670094A35C /* spectred.plist in Resources */,
B63C1B9725008A2700511A71 /* DownloadWindow.xib in Resources */,
B6E4B5D224FDE2670094A35C /* apple2cp.plist in Resources */,
@@ -851,17 +1062,17 @@
B6E4B5D924FDE2670094A35C /* albert.plist in Resources */,
B6E4B5DA24FDE2670094A35C /* Credits.rtf in Resources */,
B6E4B5DB24FDE2670094A35C /* apple2p.plist in Resources */,
B6DDECD12505A86E0093587A /* eject-hover-16x16.png in Resources */,
B65085BE25B616AC00354EC9 /* maciici.plist in Resources */,
B6DE32512605482500418375 /* macse.plist in Resources */,
B65085BC25B616AC00354EC9 /* maclc3.plist in Resources */,
B6DE32492605482500418375 /* mac512ke.plist in Resources */,
B6DE32452605482500418375 /* mac128k.plist in Resources */,
B63C1BA4250192D800511A71 /* cec2000.plist in Resources */,
B6DDECD32505A86E0093587A /* eject-hover-16x16@2x.png in Resources */,
B6E4B5DC24FDE2670094A35C /* hkc8800a.plist in Resources */,
B6DDECC525057A550093587A /* drag-handle-4x10@3x.png in Resources */,
B6374AE4260ECDDD0045CA16 /* maciihmu.plist in Resources */,
B6E4B5DD24FDE2670094A35C /* apple2gsr0.plist in Resources */,
B6E4B5DE24FDE2670094A35C /* mprof3.plist in Resources */,
B6E4B5DF24FDE2670094A35C /* basis108.plist in Resources */,
B6DDECD52505A86E0093587A /* eject-hover-16x16@3x.png in Resources */,
B6DD1FE925B407E7004A3242 /* maclc.plist in Resources */,
B6E4B5E024FDE2670094A35C /* agat7.plist in Resources */,
B6E4B5E124FDE2670094A35C /* elppa.plist in Resources */,
@@ -875,23 +1086,53 @@
B63C1B9E250192D800511A71 /* cece.plist in Resources */,
B6E4B5E824FDE2670094A35C /* MediaView.xib in Resources */,
B6E4B5E924FDE2670094A35C /* uniap2en.plist in Resources */,
B6374AD2260ECB400045CA16 /* macclas2.plist in Resources */,
B6E4B5EA24FDE2670094A35C /* apple3.plist in Resources */,
B6E4B5EB24FDE2670094A35C /* apple2ee.plist in Resources */,
B6E4B5EC24FDE2670094A35C /* dodo.plist in Resources */,
B63C1F1325B147E10016A611 /* CheatSheet.html in Resources */,
B6DE324D2605482500418375 /* macplus.plist in Resources */,
B6E4B5ED24FDE2670094A35C /* Preferences.xib in Resources */,
B6DDECD72505A86E0093587A /* eject-16x16.png in Resources */,
B6374ADE260ECB400045CA16 /* maciivx.plist in Resources */,
B6E4B5EF24FDE2670094A35C /* apple2gs.plist in Resources */,
B6E4B5F024FDE2670094A35C /* apple2jp.plist in Resources */,
B6E4B5F124FDE2670094A35C /* apple2.plist in Resources */,
B6DDECC325057A550093587A /* drag-handle-4x10@2x.png in Resources */,
B6E4B5F224FDE2670094A35C /* prav8m.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
B6152B5C25F6F4F800605E6E /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\ncd \"embedded\"\necho perl install_name_tool.pl --verbose mame64 \"@executable_path/../Frameworks\"\nperl install_name_tool.pl --verbose mame64 \"@executable_path/../Frameworks\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
B6374AB9260EBBC90045CA16 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
B6374AC4260EBBCF0045CA16 /* pty_shell.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B6841BCC251EC913006A5C39 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@@ -905,21 +1146,26 @@
buildActionMask = 2147483647;
files = (
B608E17F2502FE0C00D53465 /* TransparentScroller.m in Sources */,
B6E9A18025088B1B005E7525 /* NewSlotViewController.m in Sources */,
B6E9A18025088B1B005E7525 /* SlotViewController.m in Sources */,
B6A1A1942528EB1700DB0FD7 /* Menu.m in Sources */,
B6BA258824E99BEB005FB8FF /* main.m in Sources */,
B63C1B8B24FF4BF700511A71 /* Ample.m in Sources */,
B6B9EA662506A5550080E70D /* EjectButton.m in Sources */,
B6152B5A25F5B57E00605E6E /* Media.m in Sources */,
B6152B5625F4549F00605E6E /* Slot.m in Sources */,
B6D6DE4124FADFAC00661A5F /* LaunchWindowController.m in Sources */,
B6665C14265A0E3E00254939 /* AutocompleteControl.m in Sources */,
B64E15A924EA1D5300E8AD3D /* MachineViewController.m in Sources */,
B64979C224EF6703008ABD20 /* MediaViewController.m in Sources */,
B60A6E1424EE0AE2004B7EEF /* FlippedView.m in Sources */,
B6BA258024E99BE9005FB8FF /* AppDelegate.m in Sources */,
B6004DF024FB05D600D38596 /* LogWindowController.m in Sources */,
B63005332666D6940014C381 /* BookmarkManager.m in Sources */,
B66236A924FD9A34006CABD7 /* PreferencesWindowController.m in Sources */,
B63C1F0F25B1447C0016A611 /* CheatSheetWindowController.m in Sources */,
B64AF1F2250ECB2E00A09B9B /* DiskImagesWindowController.m in Sources */,
B64AF1F6250ED5E400A09B9B /* TableCellView.m in Sources */,
B66D0FE72611386C000902F1 /* SoftwareList.m in Sources */,
B63C1B9425008A2700511A71 /* DownloadWindowController.m in Sources */,
B64AF1FA250EF6A500A09B9B /* Transformers.m in Sources */,
);
@@ -937,12 +1183,18 @@
B64AF1F3250ECB2E00A09B9B /* DiskImagesWindowController.m 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 */,
B6E4B5B224FDE2670094A35C /* MachineViewController.m in Sources */,
B6E4B5B324FDE2670094A35C /* MediaViewController.m in Sources */,
B64AF1F7250ED5E400A09B9B /* TableCellView.m in Sources */,
B6E4B5B424FDE2670094A35C /* FlippedView.m in Sources */,
B63005342666D6940014C381 /* BookmarkManager.m in Sources */,
B615A9A026640A70001FBF99 /* SlotViewController.m in Sources */,
B6665C15265A0E3E00254939 /* AutocompleteControl.m in Sources */,
B6E4B5B524FDE2670094A35C /* AppDelegate.m in Sources */,
B66D0FE82611386C000902F1 /* SoftwareList.m in Sources */,
B6E4B5B624FDE2670094A35C /* LogWindowController.m in Sources */,
B6E4B5B724FDE2670094A35C /* PreferencesWindowController.m in Sources */,
B63C1B9525008A2700511A71 /* DownloadWindowController.m in Sources */,
@@ -952,14 +1204,6 @@
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
B61099E324F5F230005CB652 /* SlotView.xib */ = {
isa = PBXVariantGroup;
children = (
B61099E424F5F230005CB652 /* Base */,
);
name = SlotView.xib;
sourceTree = "<group>";
};
B61099E524F5F230005CB652 /* MediaView.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -992,6 +1236,14 @@
name = Credits.rtf;
sourceTree = "<group>";
};
B6665C1A265C639900254939 /* Autocomplete.xib */ = {
isa = PBXVariantGroup;
children = (
B6665C1B265C639900254939 /* Base */,
);
name = Autocomplete.xib;
sourceTree = "<group>";
};
B6BA258324E99BEB005FB8FF /* MainMenu.xib */ = {
isa = PBXVariantGroup;
children = (
@@ -1016,17 +1268,37 @@
name = LaunchWindow.xib;
sourceTree = "<group>";
};
B6E9A18125088B36005E7525 /* NewSlotView.xib */ = {
B6E9A18125088B36005E7525 /* SlotView.xib */ = {
isa = PBXVariantGroup;
children = (
B6E9A18225088B36005E7525 /* Base */,
);
name = NewSlotView.xib;
name = SlotView.xib;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
B6374AC2260EBBC90045CA16 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
CODE_SIGN_STYLE = Automatic;
INSTALL_PATH = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Debug;
};
B6374AC3260EBBC90045CA16 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_ENABLE_MODULES = NO;
CODE_SIGN_STYLE = Automatic;
INSTALL_PATH = "";
PRODUCT_NAME = "$(TARGET_NAME)";
};
name = Release;
};
B6841BD5251EC913006A5C39 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
@@ -1095,7 +1367,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
@@ -1147,7 +1419,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
MACOSX_DEPLOYMENT_TARGET = 10.14;
MACOSX_DEPLOYMENT_TARGET = 10.11;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = macosx;
@@ -1161,14 +1433,14 @@
CODE_SIGN_ENTITLEMENTS = Ample/Ample.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 14;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = Ample/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = "release 11";
MARKETING_VERSION = 0.232;
PRODUCT_BUNDLE_IDENTIFIER = com.ksherlock.ample;
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -1181,14 +1453,14 @@
CODE_SIGN_ENTITLEMENTS = Ample/Ample.entitlements;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 11;
CURRENT_PROJECT_VERSION = 14;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = Ample/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/../Frameworks",
);
MARKETING_VERSION = "release 11";
MARKETING_VERSION = 0.232;
PRODUCT_BUNDLE_IDENTIFIER = com.ksherlock.ample;
PRODUCT_NAME = "$(TARGET_NAME)";
};
@@ -1233,6 +1505,15 @@
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
B6374AC1260EBBC90045CA16 /* Build configuration list for PBXNativeTarget "pty_shell" */ = {
isa = XCConfigurationList;
buildConfigurations = (
B6374AC2260EBBC90045CA16 /* Debug */,
B6374AC3260EBBC90045CA16 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
B6841BD4251EC913006A5C39 /* Build configuration list for PBXNativeTarget "vmnet_helper" */ = {
isa = XCConfigurationList;
buildConfigurations = (
@@ -26,6 +26,11 @@
<key>orderHint</key>
<integer>0</integer>
</dict>
<key>pty_shell.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>3</integer>
</dict>
<key>vmnet_helper.xcscheme_^#shared#^_</key>
<dict>
<key>isShown</key>
+10
View File
@@ -23,6 +23,7 @@ NSString *MamePath(void);
NSURL *MameWorkingDirectory(void);
NSString *MameWorkingDirectoryPath(void);
NSString *InternString(NSString *key);
NSDictionary *MameMachine(NSString *machine);
@@ -39,4 +40,13 @@ extern NSString *kDownloadExtension;
extern NSString *kDefaultDownloadURL;
extern NSString *kDefaultDownloadExtension;
@protocol Bookmark <NSObject>
-(BOOL)loadBookmark: (NSDictionary *)bookmark;
-(BOOL)saveBookmark: (NSMutableDictionary *)bookmark;
-(void)willLoadBookmark: (NSDictionary *)bookmark;
-(void)didLoadBookmark: (NSDictionary *)bookmark;
@end
#endif /* Ample_h */
+17
View File
@@ -108,6 +108,23 @@ NSDictionary *MameMachine(NSString *machine) {
return d;
}
/* NSCache doesn't retain it's key. This essentially interns it. */
/* could just abuse NSSelectorFromString() */
NSString *InternString(NSString *key) {
static NSMutableSet *storage = nil;
if (!storage) {
storage = [NSMutableSet new];
}
NSString *copy = [storage member: key];
if (!copy) {
copy = [key copy];
[storage addObject: copy];
}
return copy;
}
NSString *kUseCustomMame = @"UseCustomMame";
NSString *kMamePath = @"MamePath";
NSString *kMameWorkingDirectory = @"MameWorkingDirectory";
+22 -3
View File
@@ -13,6 +13,7 @@
#import "DiskImagesWindowController.h"
#import "CheatSheetWindowController.h"
#import "Transformers.h"
#import "BookmarkManager.h"
#import "LogWindowController.h"
@@ -40,6 +41,10 @@
RegisterTransformers();
BookmarkManager *bm = [BookmarkManager sharedManager];
[bm loadBookmarks];
[bm updateMenu];
path = [bundle pathForResource: @"Defaults" ofType: @"plist"];
dict = [NSDictionary dictionaryWithContentsOfFile: path];
@@ -96,10 +101,15 @@
@"xfz",
path
];
[task setExecutableURL: [NSURL fileURLWithPath: @"/usr/bin/tar"]];
if (@available(macOS 10.13, *)) {
[task setExecutableURL: [NSURL fileURLWithPath: @"/usr/bin/tar"]];
[task setCurrentDirectoryURL: sd];
} else {
[task setLaunchPath: @"/usr/bin/tar"];
[task setCurrentDirectoryPath: SupportDirectoryPath()];
}
[task setArguments: argv];
[task setCurrentDirectoryURL: sd];
dispatch_time_t when = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC));
[task setTerminationHandler: ^(NSTask *task){
@@ -208,5 +218,14 @@
[ws openURL: url];
}
- (IBAction)mameMac68kWiki:(id)sender {
NSWorkspace *ws = [NSWorkspace sharedWorkspace];
NSURL *url = [NSURL URLWithString: @"https://wiki.mamedev.org/index.php/Driver:Mac_68K"];
[ws openURL: url];
}
@end
+42
View File
@@ -0,0 +1,42 @@
//
// AutocompleteControl.h
// Autocomplete
//
// Created by Kelvin Sherlock on 2/20/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#import <Cocoa/Cocoa.h>
NS_ASSUME_NONNULL_BEGIN
@class AutocompleteControl;
@protocol AutocompleteItem
-(NSString *)menuTitle;
-(NSAttributedString *)menuAttributedTitle; //?? can it still handle color?
-(BOOL)menuEnabled;
-(BOOL)menuIsHeader;
@end
@protocol AutoCompleteDelegate
-(NSArray<id<AutocompleteItem>> *)autocomplete: (AutocompleteControl *)control completionsForString: (NSString *)string;
-(NSArray<id<AutocompleteItem>> *)autocomplete: (AutocompleteControl *)control completionsForItem: (id<AutocompleteItem>)item;
@end
@interface AutocompleteControl : NSSearchField
@property NSInteger minWidth;
@property NSInteger maxDisplayItems;
@property (nullable, weak) id<AutoCompleteDelegate> autocompleteDelegate;
-(void)invalidate;
@end
NS_ASSUME_NONNULL_END
+826
View File
@@ -0,0 +1,826 @@
//
// AutocompleteControl.m
// Autocomplete
//
// Created by Kelvin Sherlock on 2/20/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#import "AutocompleteControl.h"
#include <wctype.h>
/*
Todo --
- when there is a value, can filter the list by only including header items and the selected value
- draw inactive menu items
- when menu is hidden then text is manually deleted (not esc canceled), then down/up arrow the list needs to update.
- eliminate nib and do it manually.
- when menus is too tall, macos moves it to the top of the screen.
- 1. it's not moved someplace more appropriate when the size shrinks
- 2. it should display to the left or right in that case.
- need to know parent's frame.
- fuzzy search - minimum distance between letters?
*/
@interface ACMenuView : NSView
@property (nonatomic) NSArray<id<AutocompleteItem>> *items;
@property (weak) AutocompleteControl *parent;
-(void)reset;
@end
@interface AutocompleteControl ()
{
IBOutlet NSPanel *_panel;
__weak IBOutlet ACMenuView *_menuView;
__weak IBOutlet NSScrollView *_scrollView;
id<AutocompleteItem> _value;
BOOL _editing;
BOOL _dirty;
}
@end
@interface AutocompleteControl (SearchField) <NSSearchFieldDelegate>
-(void)fixTextColor: (BOOL)editing;
@end
@implementation AutocompleteControl
-(void)_init {
[self setDelegate: self];
[self setPlaceholderString: @""];
[(NSSearchFieldCell *)[self cell] setSearchButtonCell: nil];
NSBundle *bundle = [NSBundle mainBundle];
NSNib *nib = [[NSNib alloc] initWithNibNamed: @"Autocomplete" bundle: bundle];
NSArray *topLevel = nil;
[nib instantiateWithOwner: self topLevelObjects: &topLevel];
[_panel setMovable: NO];
[_panel setBecomesKeyOnlyIfNeeded: YES];
[_menuView setParent: self];
}
-(id)initWithFrame:(NSRect)frameRect {
if ((self = [super initWithFrame: frameRect])) {
[self _init];
}
return self;
}
-(id)initWithCoder:(NSCoder *)coder {
if ((self = [super initWithCoder: coder])) {
[self _init];
}
return self;
}
#if 0
-(NSString *)stringValue {
return [super stringValue];
}
#endif
-(id)objectValue {
return _value;
}
-(void)setStringValue:(NSString *)stringValue {
[super setStringValue: stringValue ? stringValue : @""];
if (_value && [[_value menuTitle] isEqualToString: stringValue] == NO)
_value = nil;
// todo -- search for a matching item, update text color.
}
-(void)setObjectValue:(id)objectValue {
if (_value == objectValue) return;
if (![objectValue conformsToProtocol: @protocol(AutocompleteItem)]) {
_value = nil;
[super setStringValue: @""];
return;
}
_value = objectValue;
if (!_value) [super setStringValue: @""]; //
else {
[super setStringValue: [_value menuTitle]];
NSArray *array = [_autocompleteDelegate autocomplete: self completionsForItem: _value];
[_menuView setItems: array];
}
}
-(BOOL)valid {
return _value != nil;
}
-(void)hideSuggestions: (id)sender {
if (![_panel isVisible]) return;
NSWindow *window = [self window];
[window removeChildWindow: _panel];
[_panel orderOut: sender];
}
-(void)showSuggestions: (id)sender {
if ([_panel isVisible]) return;
NSWindow *window = [self window];
NSRect wFrame = [_panel frame];
NSRect vFrame = [self frame];
NSRect rect = { .origin = vFrame.origin, .size = wFrame.size };
rect = [window convertRectToScreen:rect];
rect.origin.y -= wFrame.size.height + 4;
rect.size.width = MAX(vFrame.size.width, _minWidth);
// todo - min width option.
[_panel setFrame: rect display: YES];
//[_panel setFrameOrigin: rect.origin];
[window addChildWindow: _panel ordered: NSWindowAbove];
}
-(void)updateSuggestions {
if (!_autocompleteDelegate) return;
NSString *needle = [self stringValue];
NSArray *items = [_autocompleteDelegate autocomplete: self completionsForString: needle];
[_menuView setItems: items];
if ([items count]) {
[self showSuggestions: nil];
} else {
[self hideSuggestions: nil];
}
}
-(void)invalidate {
if (!_autocompleteDelegate) return;
NSArray *items = nil;
/* if there is an object value, try to retain it. */
if (_value) {
[_menuView reset];
items = [_autocompleteDelegate autocomplete: self completionsForItem: _value];
if (items) {
[_menuView setItems: items];
return;
}
_value = nil;
[self invoke];
}
NSString *needle = [self stringValue];
if ([needle length]) {
_dirty = YES;
}
// if only 1 match, auto-set value?
items = [_autocompleteDelegate autocomplete: self completionsForString: needle];
[self fixTextColor: _editing];
[_menuView setItems: items];
}
// prevent action messages from the search field/cell.
-(BOOL)sendAction:(SEL)action to:(id)target {
if (action == [self action] && target == [self target]) return NO;
return [super sendAction: action to: target];
}
-(void)invoke {
_dirty = NO;
[super sendAction: [self action] to: [self target]];
}
@end
@implementation AutocompleteControl (SearchField)
-(void)fixTextColor: (BOOL)editing {
NSColor *color = editing || _value ? [NSColor controlTextColor] : [NSColor systemRedColor];
[self setTextColor: color];
}
- (void)controlTextDidChange:(NSNotification *)notification {
//NSLog(@"controlTextDidChange");
if (_value) {
_dirty = YES;
_value = nil;
}
NSString *s = [self stringValue];
if ([s length]) {
[self updateSuggestions];
} else {
_dirty = YES;
_value = nil;
[_menuView reset];
[_menuView setItems: nil];
[self hideSuggestions: nil];
[self invoke];
}
}
- (void)controlTextDidBeginEditing:(NSNotification *)obj {
//NSLog(@"controlTextDidBeginEditing");
_editing = YES;
_dirty = NO;
[self fixTextColor: YES];
}
- (void)controlTextDidEndEditing:(NSNotification *)obj {
//NSLog(@"controlTextDidEndEditing");
_editing = NO;
[self hideSuggestions: nil];
if (_dirty) {
_value = nil;
[self invoke];
}
[self fixTextColor: NO];
}
-(BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor {
return YES;
}
-(BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor {
return YES;
}
-(void)selectItem:(id<AutocompleteItem>)item withSelector:(SEL)selector {
// for newline/mousedown, will still retain focus after updating
// so we need to invalidate the value if it's edited further.
if (selector == @selector(insertNewline:) || selector == @selector(mouseDown:) || selector == @selector(insertTab:)) {
_value = item;
NSString *str = [item menuTitle];
[super setStringValue: str];
[self hideSuggestions: nil];
NSText *fieldEditor = [self currentEditor];
//[fieldEditor setSelectedRange: NSMakeRange([str length], 0)];
[fieldEditor setSelectedRange: NSMakeRange(0, [str length])];
[self invoke];
// need to invalidate the menu so it reloads
#if 0
NSArray *array = [_autocompleteDelegate autocomplete: self completionsForItem: _value];
[_menuView setItems: array];
#else
[_menuView setItems: nil];
#endif
//NSLog(@"selectItem:withSelector:");
}
}
- (BOOL)control:(NSControl *)control textView:(NSTextView *)textView doCommandBySelector:(SEL)commandSelector {
if (commandSelector == @selector(moveUp:)) {
//[self showSuggestions: nil];
if ([_panel isVisible]) {
[_menuView moveUp: textView];
} else {
[self updateSuggestions];
}
return YES;
}
if (commandSelector == @selector(moveDown:)) {
//[self showSuggestions: nil];
if ([_panel isVisible]) {
[_menuView moveDown: textView];
} else {
[self updateSuggestions];
}
return YES;
}
if (commandSelector == @selector(insertNewline:)) {
if ([_panel isVisible])
[_menuView insertNewline: textView];
return YES;
}
if (commandSelector == @selector(insertTab:)) {
if ([_panel isVisible])
[_menuView insertTab: textView];
return NO;
}
if (commandSelector == @selector(complete:)) {
if ([_panel isVisible]) {
[self hideSuggestions: nil];
} else {
[self updateSuggestions];
}
return YES;
}
// esc ?
// if panel open, hide
// if panel closed, delete.
if (commandSelector == @selector(cancelOperation:)) {
if ([_panel isVisible]) {
[self hideSuggestions: nil];
} else {
_value = nil;
[super setStringValue: @""];
[self hideSuggestions: nil];
[_menuView reset];
//[_menuView setItems: _completions];
// sigh...
#if 0
NSArray *items =[_autocompleteDelegate autocomplete: self completionsForString: @""];
[_menuView setItems: items];
#endif
[self invoke];
}
return YES;
}
//NSLog(@"%@", NSStringFromSelector(commandSelector));
return NO;
}
@end
@interface ACMenuView () {
id<AutocompleteItem> _value;
NSInteger _index;
NSInteger _count;
NSArray<id<AutocompleteItem>> *_items;
NSTrackingArea *_trackingArea;
NSColor *_backgroundColor;
NSColor *_selectedColor;
BOOL _tracking;
BOOL _clipped;
}
@end
@implementation ACMenuView
#define MENU_FONT_SIZE 11
#define MENU_HEIGHT 14
#define MARGIN_TOP 0 //6
#define MARGIN_BOTTOM 0 //6
#define INDENT 7
#define HEADER_INDENT 7
#define MAX_DISPLAY_ITEMS 16
-(void)_init {
_backgroundColor = [NSColor windowBackgroundColor];
if (@available(macOS 10.14, *)) {
_selectedColor = [NSColor selectedContentBackgroundColor];
} else {
_selectedColor = [NSColor selectedTextBackgroundColor];
}
NSTrackingAreaOptions options = NSTrackingMouseMoved | NSTrackingMouseEnteredAndExited | NSTrackingInVisibleRect | NSTrackingActiveInActiveApp;
_trackingArea = [[NSTrackingArea alloc] initWithRect: NSZeroRect
options: options
owner: self
userInfo: nil];
[self addTrackingArea: _trackingArea];
}
-(id)initWithCoder:(NSCoder *)coder {
if ((self = [super initWithCoder: coder])) {
[self _init];
}
return self;
}
-(BOOL)isFlipped {
return YES;
}
-(BOOL)acceptsFirstMouse:(NSEvent *)event {
return YES;
}
static CGFloat HeightForItems(NSUInteger count) {
return count * MENU_HEIGHT;
}
-(NSSize)intrinsicContentSize {
return NSMakeSize(NSViewNoIntrinsicMetric, _count * MENU_HEIGHT + MARGIN_TOP + MARGIN_BOTTOM);
}
- (NSSize)sizeThatFits:(NSSize)size {
size.height = _count * MENU_HEIGHT + MARGIN_TOP + MARGIN_BOTTOM;
return size;
}
- (void)sizeToFit {
NSSize size = [self frame].size;
size.height = _count * MENU_HEIGHT + MARGIN_TOP + MARGIN_BOTTOM;
[self setFrameSize: size];
[self setNeedsDisplay: YES];
}
-(void)reset {
[self invalidateRow: _index];
_index = -1;
_value = nil;
_items = nil;
}
-(void)setItems:(NSArray *)items {
if (_items == items) return;
_items = [items copy];
_index = -1;
_count = [items count];
if (!_items) return;
// also check enabled status....
if (_value) {
_index = [_items indexOfObject: _value];
if (_index == NSNotFound) {
_index = -1;
_value = nil;
}
}
// if only 1 entry, auto-select it.
if (!_value) {
NSInteger count = -1;
for (id<AutocompleteItem> item in _items) {
++count;
if ([item menuIsHeader]) continue;
if (_value) {
_value = nil;
_index = -1;
break;
}
_value = item;
_index = count;
}
}
NSInteger displayCount = MIN(_count, MAX_DISPLAY_ITEMS);
CGFloat newHeight = HeightForItems(displayCount) + 8 ; // 4px top/bottom
NSWindow *window = [self window];
NSRect wFrame = [window frame];
NSRect contentRect = [[[self enclosingScrollView] contentView] frame];
//NSSize size = [self intrinsicContentSize];
//NSInteger minWidth = [_parent minWidth];
//size.width = MAX(wFrame.size.width, minWidth);
//size.height += 8;
CGFloat delta = wFrame.size.height - newHeight;
wFrame.origin.y += delta;
wFrame.size.height = newHeight;
_clipped = (_count > displayCount);
[self setFrameSize: NSMakeSize(contentRect.size.width /*- 15.0*/, HeightForItems(_count))];
[self setNeedsDisplay: YES];
[window setFrame: wFrame display: YES];
if (_value) {
[self scrollToRow: _index position: ScrollToCenter force: NO];
} else {
[self scrollToRow: 0 position: ScrollToTop force: YES];
}
//[self sizeToFit];
//[[self window] setContentSize: [self frame].size];
//NSLog(@"%@", NSStringFromRect(wFrame));
}
-(id<AutocompleteItem>)itemAtPoint: (NSPoint)point indexPtr: (NSInteger *)indexPtr {
NSInteger index = floor(point.y / MENU_HEIGHT);
if (index < 0 || index >= _count) return nil;
if (indexPtr) *indexPtr = index;
return [_items objectAtIndex: index];
}
enum {
ScrollToTop,
ScrollToBottom,
ScrollToCenter,
};
-(void)scrollToRow: (NSInteger)row position: (unsigned)position force: (BOOL)force {
if (row < 0) return;
if (!_clipped) return;
NSScrollView *scrollView = [self enclosingScrollView];
NSClipView *clipView = [scrollView contentView];
NSRect visibleRect = [self visibleRect];
if (!force) {
NSRect mRect = NSMakeRect(0, row * MENU_HEIGHT, 1 , MENU_HEIGHT);
if (NSContainsRect(visibleRect, mRect)) return;
}
NSInteger topRow = row;
switch (position) {
case ScrollToTop:
break;
case ScrollToBottom:
topRow -= MAX_DISPLAY_ITEMS -1;
break;
case ScrollToCenter:
topRow -= MAX_DISPLAY_ITEMS/2 - 1;
break;
}
if (topRow < 0) topRow = 0;
if (topRow > _count - MAX_DISPLAY_ITEMS)
topRow = _count - MAX_DISPLAY_ITEMS;
NSPoint point = NSMakePoint(0, topRow * MENU_HEIGHT);
//[self scrollClipView: clipView toPoint: point];
[clipView scrollToPoint: point];
[scrollView reflectScrolledClipView: clipView];
}
-(void)moveUp:(id)sender {
if (_count == 0 || _index <= 0) return;
NSInteger index = 0;
id<AutocompleteItem> value = nil;
for (index = _index - 1; index >= 0; --index) {
value = [_items objectAtIndex: index];
if ([value menuIsHeader]) continue;
if (![value menuEnabled]) continue;
break;
}
if (index < 0) return;
if (index == _index) return;
[self invalidateRow: _index];
[self invalidateRow: index];
_index = index;
_value = value;
[self scrollToRow: index position: ScrollToTop force: NO];
[_parent selectItem: _value withSelector: _cmd];
}
-(void)moveDown:(id)sender {
// _index -1 selects first item.
if (_count == 0 || _index == _count - 1) return;
NSInteger index = 0;
id<AutocompleteItem> value = nil;
for (index = _index + 1; index < _count ; ++index) {
value = [_items objectAtIndex: index];
if ([value menuIsHeader]) continue;
if (![value menuEnabled]) continue;
break;
}
if (index == _count) return;
if (index == _index) return;
[self invalidateRow: _index];
[self invalidateRow: index];
_index = index;
_value = value;
[self scrollToRow: index position: ScrollToBottom force: NO];
[_parent selectItem: _value withSelector: _cmd];
}
-(void)insertNewline:(id)sender {
if (_value) {
[_parent selectItem: _value withSelector: _cmd];
}
}
-(void)insertTab:(id)sender {
// if only one option, autocomplete?
if (_value) {
[_parent selectItem: _value withSelector: _cmd];
}
}
-(void)mouseMoved:(NSEvent *)event {
//NSLog(@"mouse moved");
if (!_tracking) return;
NSPoint p = [event locationInWindow];
p = [self convertPoint: p fromView: nil];
NSInteger index;
id<AutocompleteItem> value = [self itemAtPoint: p indexPtr: &index];
if (!value) return;
if (index == _index) return;
if ([value menuIsHeader]) return;
if (![value menuEnabled]) return;
[self invalidateRow: _index];
[self invalidateRow: index];
_index = index;
_value = value;
[_parent selectItem: _value withSelector: _cmd];
}
-(void)mouseDown:(NSEvent *)event {
if (!_tracking) return;
NSPoint p = [event locationInWindow];
p = [self convertPoint: p fromView: nil];
NSInteger index;
id<AutocompleteItem> value = [self itemAtPoint: p indexPtr: &index];
if (!value) return;
if (index != _index) {
if ([value menuIsHeader]) return;
if (![value menuEnabled]) return;
[self invalidateRow: _index];
[self invalidateRow: index];
_index = index;
_value = value;
}
[_parent selectItem: _value withSelector: _cmd];
}
-(void)mouseEntered:(NSEvent *)event {
//NSLog(@"mouse entered");
_tracking = YES;
}
-(void)mouseExited:(NSEvent *)event {
//NSLog(@"mouse exited");
_tracking = NO;
}
-(void)invalidateRow:(NSInteger)row {
if (row < 0 || row >= _count) return;
NSRect r = NSZeroRect;
NSRect bounds = [self bounds];
r.size.width = bounds.size.width;
r.size.height = MENU_HEIGHT;
r.origin.y = MENU_HEIGHT * row + MARGIN_TOP;
//NSLog(@"Invalidating %ld - %@", row, NSStringFromRect(r));
[self setNeedsDisplayInRect: r];
}
static void DrawString(NSString *str, NSDictionary *attr, CGRect rect) {
NSSize size = [str sizeWithAttributes: attr];
if (size.width <= rect.size.width) {
[str drawInRect: rect withAttributes: attr];
return;
}
NSMutableString *mstr = [str mutableCopy];
// binary search is probably the best way to handle it :/
NSInteger l = [mstr length];
while (l > 2) {
[mstr replaceCharactersInRange: NSMakeRange(l-2, 2) withString: @""];
--l;
size = [mstr sizeWithAttributes: attr];
if (size.width <= rect.size.width) {
[mstr drawInRect: rect withAttributes: attr];
return;
}
}
}
-(void)drawItem: (id<AutocompleteItem>)item inRect: (NSRect)rect {
NSColor *textColor = [NSColor textColor];
if (!item) return;
if (item == _value) {
textColor = [NSColor selectedMenuItemTextColor];
[_selectedColor setFill];
NSRectFill(rect);
}
NSString *string = [item menuTitle];
if ([item menuIsHeader]) {
textColor = [NSColor secondaryLabelColor];
NSDictionary *attr = @{
NSForegroundColorAttributeName: textColor,
NSFontAttributeName: [NSFont systemFontOfSize: MENU_FONT_SIZE], // [NSFont boldSystemFontOfSize: 13],
};
NSRect r = NSInsetRect(rect, HEADER_INDENT, 0);
DrawString(string, attr, r);
} else {
NSDictionary *attr = @{
NSForegroundColorAttributeName: textColor,
NSFontAttributeName: [NSFont systemFontOfSize: MENU_FONT_SIZE],
};
NSRect r = NSInsetRect(rect, INDENT, 0);
r.origin.x += INDENT;
r.size.width -= INDENT;
DrawString(string, attr, r);
}
}
- (void)drawRect:(NSRect)dirtyRect {
[super drawRect:dirtyRect];
NSRect r = [self bounds];
NSInteger begin = floor((NSMinY(dirtyRect) - MARGIN_TOP) / MENU_HEIGHT);
NSInteger end = ceil((NSMaxY(dirtyRect) - MARGIN_TOP) / MENU_HEIGHT);
if (begin < 0) begin = 0;
if (end > _count) end = _count;
r.origin.y = MENU_HEIGHT * begin + MARGIN_TOP;
r.size.height = MENU_HEIGHT;
for (NSInteger index = begin; index < end; ++index) {
id<AutocompleteItem> item = [_items objectAtIndex: index];
[self drawItem: item inRect: r];
r.origin.y += MENU_HEIGHT;
}
}
@end
/* custom scroller that doesn't draw a background. */
@interface ACScroller : NSScroller
@end
@implementation ACScroller
-(void)drawRect:(NSRect)dirtyRect {
//[[NSColor windowBackgroundColor] set];
[[NSColor clearColor] set];
NSRectFill(dirtyRect);
[self drawKnob];
}
@end
@interface ACPanel : NSPanel
@end
@implementation ACPanel
/* needed to prevent the pop-up child window from being moved when offscreen. */
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen {
return frameRect;
}
@end
+55
View File
@@ -0,0 +1,55 @@
<?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="AutocompleteControl">
<connections>
<outlet property="_menuView" destination="F2h-9b-Ouu" id="min-gE-sma"/>
<outlet property="_panel" destination="OYW-cj-FD5" id="DYJ-rN-6Ep"/>
<outlet property="_scrollView" destination="VQ6-PE-hTH" id="iKA-Ps-nkl"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<window allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" titlebarAppearsTransparent="YES" titleVisibility="hidden" id="OYW-cj-FD5" customClass="ACPanel">
<windowStyleMask key="styleMask" utility="YES" nonactivatingPanel="YES" fullSizeContentView="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="272" y="172" width="300" height="400"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="3pz-HL-mV1">
<rect key="frame" x="0.0" y="0.0" width="300" height="400"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="0.0" horizontalPageScroll="0.0" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="VQ6-PE-hTH">
<rect key="frame" x="0.0" y="4" width="300" height="392"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="HWy-NN-aOV">
<rect key="frame" x="0.0" y="0.0" width="300" height="392"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<view id="F2h-9b-Ouu" customClass="ACMenuView">
<rect key="frame" x="0.0" y="0.0" width="300" height="392"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
</view>
</subviews>
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="Az6-1a-Hei">
<rect key="frame" x="-100" y="-100" width="168" height="15"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="tng-g2-1LZ" customClass="ACScroller">
<rect key="frame" x="285" y="0.0" width="15" height="392"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
</view>
<point key="canvasLocation" x="127" y="73"/>
</window>
</objects>
</document>
-17
View File
@@ -1,16 +1,12 @@
<?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"/>
<plugIn identifier="com.apple.WebKit2IBPlugin" version="15705"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="CheatSheetWindowController">
<connections>
<outlet property="_webView" destination="Yc9-xA-jWX" id="rsd-1e-HPk"/>
<outlet property="webView" destination="Yc9-xA-jWX" id="EE3-gk-f71"/>
<outlet property="window" destination="QvC-M9-y7g" id="U2v-sN-OzH"/>
</connections>
</customObject>
@@ -23,19 +19,6 @@
<view key="contentView" wantsLayer="YES" id="EiT-Mj-1SZ">
<rect key="frame" x="0.0" y="0.0" width="640" height="640"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<wkWebView hidden="YES" wantsLayer="YES" fixedFrame="YES" allowsLinkPreview="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Yc9-xA-jWX">
<rect key="frame" x="0.0" y="0.0" width="640" height="640"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<wkWebViewConfiguration key="configuration">
<audiovisualMediaTypes key="mediaTypesRequiringUserActionForPlayback" none="YES"/>
<wkPreferences key="preferences" javaScriptCanOpenWindowsAutomatically="NO"/>
</wkWebViewConfiguration>
<connections>
<outlet property="navigationDelegate" destination="-2" id="1WW-1B-FdZ"/>
</connections>
</wkWebView>
</subviews>
</view>
<connections>
<outlet property="delegate" destination="-2" id="u4H-aq-RE2"/>
+10 -5
View File
@@ -27,15 +27,15 @@
<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">
<clipView key="contentView" ambiguous="YES" 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" selectionHighlightStyle="sourceList" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="22" rowSizeStyle="automatic" viewBased="YES" id="J5l-1d-030">
<tableView focusRingType="none" verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="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" name="_sourceListBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn width="282" minWidth="40" maxWidth="1000" id="1rF-M3-pYV">
@@ -107,15 +107,20 @@
</connections>
</tableView>
</subviews>
<nil key="backgroundColor"/>
<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">
<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>
+1 -1
View File
@@ -48,7 +48,7 @@
<rect key="frame" x="1" y="1" width="400" height="444"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<tableView verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="none" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="49" rowSizeStyle="automatic" viewBased="YES" id="FLX-Wt-y53">
<tableView verticalHuggingPriority="750" ambiguous="YES" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" alternatingRowBackgroundColors="YES" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowHeight="49" rowSizeStyle="automatic" viewBased="YES" id="FLX-Wt-y53">
<rect key="frame" x="0.0" y="0.0" width="400" height="444"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<size key="intercellSpacing" width="3" height="2"/>
+182 -13
View File
@@ -8,12 +8,15 @@
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="LaunchWindowController">
<connections>
<outlet property="addBookmarkWindow" destination="yIt-hP-HBq" id="Qhx-WV-cg4"/>
<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="RgH-d9-xl8" id="DIa-h0-6y2"/>
<outlet property="mediaController" destination="t7c-zy-czN" id="a7d-HC-TWx"/>
<outlet property="mediaView" destination="J9O-xI-P5J" id="PmZ-VC-4SN"/>
<outlet property="slotController" destination="lyS-mc-3Tf" id="LXo-Ii-fDX"/>
<outlet property="slotView" destination="P9d-sS-qEb" id="qlH-u0-hzq"/>
<outlet property="softwareListControl" destination="pNl-g4-ZLh" id="U0i-R9-GLE"/>
<outlet property="window" destination="Vze-YF-m6e" id="JUs-Eb-MW8"/>
</connections>
</customObject>
@@ -32,7 +35,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
</customView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nKp-px-nHg">
<rect key="frame" x="587" y="58" width="111" height="23"/>
<rect key="frame" x="588.5" y="58" width="111" height="23"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
<buttonCell key="cell" type="roundTextured" title="Launch" bezelStyle="texturedRounded" image="NSAppleMenuImage" imagePosition="left" alignment="center" borderStyle="border" inset="2" id="Ct1-Rb-7uI">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -47,7 +50,7 @@ DQ
</connections>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nNO-3T-OAy">
<rect key="frame" x="470" y="58" width="109" height="23"/>
<rect key="frame" x="470.5" y="58" width="109" height="23"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
<buttonCell key="cell" type="roundTextured" title="Reset Slots" bezelStyle="texturedRounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Uii-5h-2R2">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@@ -60,7 +63,7 @@ DQ
</connections>
</button>
<customView id="P9d-sS-qEb" customClass="FlippedView">
<rect key="frame" x="20" y="92" width="306" height="363"/>
<rect key="frame" x="20" y="92" width="316" height="363"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
</customView>
<tabView initialItem="zUN-Qs-haG" id="l8R-bg-6Zm">
@@ -122,18 +125,31 @@ DQ
</connections>
</button>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="hM8-FM-Agh">
<rect key="frame" x="382" y="87" width="172" height="25"/>
<rect key="frame" x="382" y="87" width="174" height="25"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="Default" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="Dsm-bi-Txy" id="mBS-h4-BWC">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="WdF-Hw-YI9">
<items>
<menuItem title="Default" state="on" id="Dsm-bi-Txy"/>
<menuItem title="Unfiltered" tag="1" id="xgz-We-TFg"/>
<menuItem title="HLSL" tag="2" id="1UE-ea-V9a"/>
<menuItem title="CRT Geometry" tag="3" id="Dsx-wI-m3r"/>
<menuItem title="CRT Geometry Deluxe" tag="4" id="Ylw-Of-TM5"/>
<menuItem title="Default" state="on" id="Dsm-bi-Txy">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="Unfiltered" tag="1" id="xgz-We-TFg">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="HLSL" tag="2" id="1UE-ea-V9a">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="CRT Geometry" tag="3" id="Dsx-wI-m3r">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="CRT Geometry Deluxe" tag="4" id="Ylw-Of-TM5">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="LCD Grid" tag="5" id="A6k-ku-z2M">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
</items>
</menu>
</popUpButtonCell>
@@ -193,6 +209,17 @@ DQ
<binding destination="-2" name="value" keyPath="self.mameMouse" id="vWu-od-2d6"/>
</connections>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="XNa-8k-X89">
<rect key="frame" x="143" y="29" width="137" height="18"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="check" title="Disk Sound Effects" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="MBT-Uv-Lev">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<binding destination="-2" name="value" keyPath="self.mameSamples" id="77G-8C-HgT"/>
</connections>
</button>
</subviews>
</view>
</tabViewItem>
@@ -214,7 +241,7 @@ DQ
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="PGK-yK-2ZK">
<rect key="frame" x="15" y="91" width="43" height="16"/>
<autoresizingMask key="autoresizingMask"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Speed" id="D9w-Mz-PXs">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@@ -222,7 +249,7 @@ DQ
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="FE4-gG-fPb">
<rect key="frame" x="62" y="86" width="107" height="25"/>
<rect key="frame" x="62" y="86" width="109" height="25"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="100%" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" tag="1" imageScaling="proportionallyDown" inset="2" selectedItem="yoI-Ra-evu" id="M40-f0-awc">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
@@ -345,10 +372,68 @@ DQ
</subviews>
</view>
</tabViewItem>
<tabViewItem label="Paths" identifier="" id="PVN-Iw-nYG">
<view key="view" id="5qP-bQ-Id6">
<rect key="frame" x="10" y="33" width="672" height="114"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField toolTip="path or socket.address:port" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wga-1O-bDR">
<rect key="frame" x="132" y="90" width="523" height="21"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="socket.127.0.0.1:23 or /path/to/file" drawsBackground="YES" id="6d8-LZ-wh1">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.mameBitBanger" id="O76-B6-FhP">
<dictionary key="options">
<string key="NSNullPlaceholder">socket.127.0.0.1:23 or /path/to/file</string>
</dictionary>
</binding>
</connections>
</textField>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="VDW-FX-9az">
<rect key="frame" x="132" y="59" width="523" height="21"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="/path/to/directory/" drawsBackground="YES" id="ykl-aj-n1L">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="self.mameShareDirectory" id="fqw-G0-t5P">
<dictionary key="options">
<string key="NSNullPlaceholder">/path/to/directory/</string>
</dictionary>
</binding>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="uPk-SB-lIF">
<rect key="frame" x="15" y="92" width="71" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Bit Banger:" id="9jA-4x-Abr">
<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>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="upA-x5-LVd">
<rect key="frame" x="15" y="61" width="103" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Share Directory:" id="RmQ-pY-o5K">
<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>
</tabViewItem>
</tabViewItems>
</tabView>
<customView fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="J9O-xI-P5J" customClass="FlippedView">
<rect key="frame" x="392" y="92" width="306" height="363"/>
<rect key="frame" x="382" y="92" width="316" height="331"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
</customView>
<scrollView borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" horizontalScrollElasticity="none" id="2ue-XT-byh">
@@ -385,13 +470,97 @@ DQ
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
<searchField wantsLayer="YES" verticalHuggingPriority="750" textCompletion="NO" id="pNl-g4-ZLh" customClass="AutocompleteControl">
<rect key="frame" x="382" y="431" width="316" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" placeholderString="Software List" usesSingleLineMode="YES" bezelStyle="round" id="sMi-a3-XEn">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="systemRedColor" catalog="System" colorSpace="catalog"/>
</searchFieldCell>
<connections>
<action selector="softwareChanged:" target="-2" id="879-da-UEc"/>
</connections>
</searchField>
</subviews>
</view>
<point key="canvasLocation" x="769" y="120.5"/>
</window>
<viewController title="Media View" nibName="MediaView" id="t7c-zy-czN" customClass="MediaViewController"/>
<viewController title="Slot View" nibName="NewSlotView" id="lyS-mc-3Tf" customClass="NewSlotViewController"/>
<viewController title="Slot View" nibName="SlotView" id="lyS-mc-3Tf" customClass="SlotViewController"/>
<customObject id="RgH-d9-xl8" customClass="MachineViewController"/>
<window title="Add Bookmark" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="yIt-hP-HBq">
<windowStyleMask key="styleMask" titled="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="196" y="240" width="462" height="116"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" wantsLayer="YES" id="WVd-g4-Tbl">
<rect key="frame" x="0.0" y="0.0" width="462" height="116"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Gho-Xy-rn4">
<rect key="frame" x="358" y="13" width="90" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="push" title="Add" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="Vxo-rD-aMe">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent" base64-UTF8="YES">
DQ
</string>
</buttonCell>
<connections>
<action selector="bookmarkSave:" target="-2" id="wLF-LE-5RO"/>
<binding destination="-2" name="enabled" keyPath="bookmarkName" id="U5R-gU-1bE">
<dictionary key="options">
<string key="NSValueTransformerName">StringNotEmptyTransformer</string>
</dictionary>
</binding>
</connections>
</button>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3sv-Kd-Ep5">
<rect key="frame" x="268" y="13" width="90" height="32"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="push" title="Cancel" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="jaa-RY-PAg">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent" base64-UTF8="YES">
Gw
</string>
</buttonCell>
<connections>
<action selector="bookmarkCancel:" target="-2" id="uWM-vs-hz7"/>
</connections>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1fO-x7-Gft">
<rect key="frame" x="18" y="80" width="103" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Add Bookmark…" id="AZS-JR-SNt">
<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>
<textField verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fAl-Vn-x1w">
<rect key="frame" x="20" y="49" width="422" height="23"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="bookmark name" drawsBackground="YES" id="Enq-2z-cle">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<binding destination="-2" name="value" keyPath="bookmarkName" id="84v-el-4Uk">
<dictionary key="options">
<bool key="NSContinuouslyUpdatesValue" value="YES"/>
<string key="NSNullPlaceholder">bookmark name</string>
</dictionary>
</binding>
</connections>
</textField>
</subviews>
</view>
<point key="canvasLocation" x="130" y="70"/>
</window>
</objects>
<resources>
<image name="NSAppleMenuImage" width="11" height="14"/>
+22 -1
View File
@@ -21,7 +21,7 @@
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/>
<view key="contentView" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="800" height="270"/>
<autoresizingMask key="autoresizingMask"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<scrollView fixedFrame="YES" borderType="none" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hj3-ou-djb">
<rect key="frame" x="0.0" y="0.0" width="800" height="270"/>
@@ -52,10 +52,31 @@
</scrollView>
</subviews>
</view>
<toolbar key="toolbar" implicitIdentifier="54C242E0-0A7F-491A-9B83-7279A9663A36" autosavesConfiguration="NO" allowsUserCustomization="NO" displayMode="iconOnly" sizeMode="small" id="Cik-bA-ZYu">
<allowedToolbarItems>
<toolbarItem implicitItemIdentifier="NSToolbarShowColorsItem" id="zxC-EA-a7F"/>
<toolbarItem implicitItemIdentifier="NSToolbarShowFontsItem" id="xZv-cQ-rPS"/>
<toolbarItem implicitItemIdentifier="NSToolbarPrintItem" id="2BZ-oP-sMg"/>
<toolbarItem implicitItemIdentifier="NSToolbarSpaceItem" id="j5G-hW-61a"/>
<toolbarItem implicitItemIdentifier="NSToolbarFlexibleSpaceItem" id="a72-iv-2QT"/>
<toolbarItem implicitItemIdentifier="21A9965C-D1B3-4E82-A344-1688A467E870" label="Clear Log" paletteLabel="Clear Log" tag="-1" image="NSTrashEmpty" id="pn5-MM-9p1">
<connections>
<action selector="clearLog:" target="-2" id="VU3-mv-6WR"/>
</connections>
</toolbarItem>
</allowedToolbarItems>
<defaultToolbarItems>
<toolbarItem reference="a72-iv-2QT"/>
<toolbarItem reference="pn5-MM-9p1"/>
</defaultToolbarItems>
</toolbar>
<connections>
<outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
</connections>
<point key="canvasLocation" x="-285" y="-234"/>
</window>
</objects>
<resources>
<image name="NSTrashEmpty" width="32" height="32"/>
</resources>
</document>
+28 -1
View File
@@ -19,6 +19,11 @@
</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>
<menu title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
<items>
<menuItem title="Ample" id="1Xt-HY-uBw">
@@ -389,6 +394,22 @@
</items>
</menu>
</menuItem>
<menuItem title="Bookmarks" id="vHO-2e-qJc">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Bookmarks" id="ha0-nx-PIl">
<items>
<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 isSeparatorItem="YES" id="gWR-Yl-mg6"/>
</items>
</menu>
</menuItem>
<menuItem title="Window" id="aUF-d1-5bR">
<modifierMask key="keyEquivalentModifierMask"/>
<menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
@@ -451,7 +472,13 @@
<menuItem title="MAME Apple II Wiki" id="GLh-Cc-5uU">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="mameAppleWiki:" target="Voe-Tx-rLC" id="KEg-0U-KdU"/>
<action selector="mameAppleWiki:" target="Voe-Tx-rLC" id="jRe-m6-mP0"/>
</connections>
</menuItem>
<menuItem title="MAME Mac 68K Wiki" id="hDL-K6-iVF">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="mameMac68kWiki:" target="Voe-Tx-rLC" id="ZzB-54-vXN"/>
</connections>
</menuItem>
<menuItem title="MAME Documentation" id="1IW-V0-UWA">
+13 -13
View File
@@ -1,7 +1,6 @@
<?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>
@@ -14,20 +13,20 @@
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="30" horizontalPageScroll="10" verticalLineScroll="30" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="nVT-kT-bWl">
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
<clipView key="contentView" autoresizesSubviews="NO" focusRingType="none" ambiguous="YES" copiesOnScroll="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IBD-wb-pch">
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="25" horizontalPageScroll="10" verticalLineScroll="25" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" translatesAutoresizingMaskIntoConstraints="NO" id="nVT-kT-bWl">
<rect key="frame" x="0.0" y="0.0" width="316" height="331"/>
<clipView key="contentView" autoresizesSubviews="NO" focusRingType="none" ambiguous="YES" drawsBackground="NO" copiesOnScroll="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IBD-wb-pch">
<rect key="frame" x="0.0" y="0.0" width="316" height="331"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="none" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="27" rowSizeStyle="automatic" viewBased="YES" outlineTableColumn="pBj-py-R6a" id="sIz-DD-PZQ">
<rect key="frame" x="0.0" y="0.0" width="306" height="363"/>
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" selectionHighlightStyle="none" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="22" rowSizeStyle="automatic" viewBased="YES" outlineTableColumn="pBj-py-R6a" id="sIz-DD-PZQ">
<rect key="frame" x="0.0" y="0.0" width="316" height="331"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<size key="intercellSpacing" width="2" height="3"/>
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
<tableColumns>
<tableColumn editable="NO" width="280" minWidth="40" maxWidth="1000" id="pBj-py-R6a">
<tableColumn editable="NO" width="296" minWidth="40" maxWidth="1000" id="pBj-py-R6a">
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border">
<font key="font" metaFont="smallSystem"/>
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
@@ -38,13 +37,14 @@
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES"/>
<prototypeCellViews>
<tableCellView identifier="CategoryView" focusRingType="none" id="33q-UT-ur5">
<rect key="frame" x="1" y="1" width="280" height="17"/>
<rect key="frame" x="1" y="1" width="296" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Pep-mX-LHY">
<rect key="frame" x="0.0" y="0.0" width="280" height="17"/>
<rect key="frame" x="0.0" y="0.0" width="296" height="17"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Rrg-wr-8eL">
<font key="font" metaFont="systemBold"/>
@@ -58,11 +58,11 @@
</connections>
</tableCellView>
<tableCellView identifier="ItemView" translatesAutoresizingMaskIntoConstraints="NO" id="yGq-lc-RCM" customClass="TablePathView">
<rect key="frame" x="1" y="21" width="280" height="22"/>
<rect key="frame" x="1" y="21" width="296" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<pathControl focusRingType="none" verticalHuggingPriority="750" fixedFrame="YES" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="f7R-TO-fmF">
<rect key="frame" x="20" y="0.0" width="228" height="22"/>
<rect key="frame" x="20" y="0.0" width="244" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<pathCell key="cell" controlSize="small" selectable="YES" editable="YES" focusRingType="none" alignment="left" pathStyle="popUp" id="dcz-8y-tKb">
<font key="font" metaFont="smallSystem"/>
@@ -77,7 +77,7 @@
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="left" image="drag-handle-4x10" id="x7F-qD-5y9"/>
</imageView>
<button verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zNo-ij-mUl" customClass="EjectButton">
<rect key="frame" x="261" y="3" width="16" height="16"/>
<rect key="frame" x="277" y="3" width="16" height="16"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="bevel" bezelStyle="regularSquare" image="eject-16x16" imagePosition="only" alignment="center" alternateImage="eject-hover-16x16" imageScaling="proportionallyDown" inset="2" id="IZA-Tu-olu">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
-103
View File
@@ -1,103 +0,0 @@
<?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="NewSlotViewController">
<connections>
<outlet property="outlineView" destination="Xj3-Qf-yek" id="AWE-Rg-XUM"/>
<outlet property="view" destination="D45-lv-6Fv" id="av3-OE-ph2"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="27" horizontalPageScroll="10" verticalLineScroll="27" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="D45-lv-6Fv">
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<clipView key="contentView" focusRingType="none" copiesOnScroll="NO" id="8x1-xN-a7c">
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="none" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="25" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="u7T-p8-F2Z" id="Xj3-Qf-yek">
<rect key="frame" x="0.0" y="0.0" width="306" height="386"/>
<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="280" minWidth="40" maxWidth="1000" id="u7T-p8-F2Z">
<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="FM7-eO-FE4">
<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 identifier="MenuCell" id="1RI-9K-5qj" customClass="SlotTableCellView">
<rect key="frame" x="1" y="1" width="280" height="25"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qIF-d4-kOf">
<rect key="frame" x="0.0" y="5" width="90" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="RAM:" id="tIz-xZ-ZJH">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zQ8-o3-yBB">
<rect key="frame" x="87" y="0.0" width="193" height="25"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="tGi-yg-GFr" id="gt4-HK-pd1">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" autoenablesItems="NO" id="KWV-nn-eiB">
<items>
<menuItem title="Item 1" state="on" id="tGi-yg-GFr"/>
<menuItem title="Item 2" id="XJr-Gb-4D4"/>
<menuItem title="Item 3" id="JeB-Fb-DeQ"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="9MH-mu-u5V"/>
</connections>
</popUpButton>
</subviews>
<connections>
<outlet property="menuButton" destination="zQ8-o3-yBB" id="zZf-nm-tCI"/>
<outlet property="textField" destination="qIF-d4-kOf" id="zIF-4n-v1e"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="-2" id="OV9-yE-OFp"/>
<outlet property="delegate" destination="-2" id="kXs-TN-3VL"/>
</connections>
</outlineView>
</subviews>
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="rYF-ld-adB">
<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="4pL-Dn-e75" customClass="TransparentScroller">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
<point key="canvasLocation" x="-100" y="154"/>
</scrollView>
</objects>
</document>
+218 -614
View File
@@ -8,625 +8,229 @@
<objects>
<customObject id="-2" userLabel="File's Owner" customClass="SlotViewController">
<connections>
<outlet property="aux_menu" destination="3kq-qn-7YR" id="wic-Ry-yAf"/>
<outlet property="exp_menu" destination="San-wP-1ez" id="X7u-dM-xrI"/>
<outlet property="game_menu" destination="K8G-bZ-6mZ" id="IeQ-ZT-5F6"/>
<outlet property="modem_menu" destination="KHf-kC-BpZ" id="Qab-mA-anC"/>
<outlet property="printer_menu" destination="sTp-en-8Wd" id="zeu-LF-6mV"/>
<outlet property="ram_menu" destination="Yks-M5-vi0" id="h5y-Un-jYJ"/>
<outlet property="rs232_menu" destination="6ln-U2-0Pi" id="7CT-OE-idV"/>
<outlet property="sl0_menu" destination="Jw1-t7-YyU" id="BB5-6y-zyf"/>
<outlet property="sl1_menu" destination="bta-RS-JT4" id="cpI-db-kzX"/>
<outlet property="sl2_menu" destination="cDU-b1-x5a" id="WtL-Fo-Q1B"/>
<outlet property="sl3_menu" destination="aSh-cs-0Nn" id="24o-66-LjH"/>
<outlet property="sl4_menu" destination="kU5-cR-hPZ" id="STc-6r-nxH"/>
<outlet property="sl5_menu" destination="8z4-8f-kLU" id="cLl-Ee-LUD"/>
<outlet property="sl6_menu" destination="GLb-F4-PWe" id="ubk-pt-e1Q"/>
<outlet property="sl7_menu" destination="IV2-3M-qfw" id="s5k-4G-w4r"/>
<outlet property="view" destination="OM3-7F-wiN" id="yre-ts-aHj"/>
<outlet property="_popover" destination="QIT-2T-wdy" id="WUB-OS-kem"/>
<outlet property="childOutlineView" destination="uM0-Gk-crn" id="aL5-uC-O28"/>
<outlet property="outlineView" destination="Xj3-Qf-yek" id="AWE-Rg-XUM"/>
<outlet property="view" destination="D45-lv-6Fv" id="av3-OE-ph2"/>
</connections>
</customObject>
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
<gridView autoresizesSubviews="NO" misplaced="YES" xPlacement="leading" yPlacement="bottom" rowAlignment="none" translatesAutoresizingMaskIntoConstraints="NO" id="OM3-7F-wiN">
<rect key="frame" x="0.0" y="0.0" width="306" height="459"/>
<rows>
<gridRow yPlacement="center" height="25" id="tHD-ui-hIL">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.ram" id="ze9-jx-lv0">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="Ccd-U2-Gx5">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl0" id="YsR-kI-yrh">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="JGU-aq-3uw">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl1" id="1io-aZ-v2G">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="gVW-Ya-phU">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl2" id="AgS-hm-ePr">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="3fP-qp-zmi">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl3" id="98U-4P-iRh">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="86u-5p-UT6">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl4" id="hsy-pm-Qjk">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="Wdg-xb-xQx">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl5" id="0QC-RB-278">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="ein-Fe-vBw">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl6" id="731-3P-DUy">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="qjB-2w-AWE">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.sl7" id="sew-Ds-4I9">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="EEX-dh-jwn">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.exp" id="EOZ-lS-QHF">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="OaZ-ZQ-gKK">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.aux" id="OlF-v7-JZx">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="wQi-Oz-7Ye">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.rs232" id="AeP-bn-blv">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="gr2-eY-995">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.gameio" id="x3I-Bd-9di">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="1xN-lm-s4l">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.printer" id="T9a-lH-z5K">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
<gridRow yPlacement="center" height="25" id="M2s-qn-SIT">
<connections>
<binding destination="-2" name="hidden" keyPath="machine.modem" id="PSe-R3-S3e">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</gridRow>
</rows>
<columns>
<gridColumn xPlacement="fill" width="100" id="zpB-Rf-dWg"/>
<gridColumn xPlacement="fill" width="200" id="6Vn-yh-FoQ"/>
</columns>
<gridCells>
<gridCell row="tHD-ui-hIL" column="zpB-Rf-dWg" id="deJ-sv-Hb7">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nHa-QG-HjJ">
<rect key="frame" x="-2" y="439" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="RAM:" id="CvY-8m-Ni9">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="tHD-ui-hIL" column="6Vn-yh-FoQ" id="dak-Ha-01u">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="16" translatesAutoresizingMaskIntoConstraints="NO" id="Yks-M5-vi0">
<rect key="frame" x="104" y="433" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="92u-m2-3yN" id="XFo-KF-ueS">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="k8O-sG-Qld">
<items>
<menuItem title="Item 1" state="on" id="92u-m2-3yN">
<attributedString key="attributedTitle"/>
</menuItem>
<menuItem title="Item 2" id="dPG-tR-M4A"/>
<menuItem title="Item 3" id="q2n-oZ-46s"/>
</items>
</menu>
</popUpButtonCell>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="27" horizontalPageScroll="10" verticalLineScroll="27" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="D45-lv-6Fv">
<rect key="frame" x="0.0" y="0.0" width="316" height="386"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<clipView key="contentView" autoresizesSubviews="NO" focusRingType="none" drawsBackground="NO" copiesOnScroll="NO" id="8x1-xN-a7c">
<rect key="frame" x="0.0" y="0.0" width="316" height="386"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="25" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="2" autoresizesOutlineColumn="YES" outlineTableColumn="u7T-p8-F2Z" id="Xj3-Qf-yek">
<rect key="frame" x="0.0" y="0.0" width="316" height="386"/>
<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 editable="NO" width="296" minWidth="40" maxWidth="1000" id="u7T-p8-F2Z">
<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="FM7-eO-FE4">
<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"/>
<prototypeCellViews>
<tableCellView identifier="MenuCell" id="1RI-9K-5qj" customClass="SlotTableCellView">
<rect key="frame" x="1" y="1" width="296" height="25"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="qIF-d4-kOf">
<rect key="frame" x="0.0" y="5" width="90" height="17"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="RAM:" id="tIz-xZ-ZJH">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zQ8-o3-yBB">
<rect key="frame" x="82" y="0.0" width="199" height="25"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="tGi-yg-GFr" id="gt4-HK-pd1">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" autoenablesItems="NO" id="KWV-nn-eiB">
<items>
<menuItem title="Item 1" state="on" id="tGi-yg-GFr"/>
<menuItem title="Item 2" id="XJr-Gb-4D4"/>
<menuItem title="Item 3" id="JeB-Fb-DeQ"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="9MH-mu-u5V"/>
</connections>
</popUpButton>
<button fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="xCe-sY-sGe">
<rect key="frame" x="282" y="8" width="14" height="10"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSListViewTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="0qU-ID-kJ8">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="hamburger:" target="-2" id="5Xa-j7-Aod"/>
<binding destination="1RI-9K-5qj" name="hidden" keyPath="objectValue.selectedItem.children" id="rY2-0l-0N8">
<dictionary key="options">
<string key="NSValueTransformerName">NSIsNil</string>
</dictionary>
</binding>
</connections>
</button>
</subviews>
<connections>
<outlet property="hamburgerButton" destination="xCe-sY-sGe" id="5Da-If-Bt4"/>
<outlet property="menuButton" destination="zQ8-o3-yBB" id="zZf-nm-tCI"/>
<outlet property="textField" destination="qIF-d4-kOf" id="zIF-4n-v1e"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
<connections>
<action selector="memoryMenuChanged:" target="-2" id="m1Q-Xj-z22"/>
<binding destination="-2" name="content" keyPath="machine.ram" id="UCD-j5-7Bh"/>
<outlet property="dataSource" destination="-2" id="OV9-yE-OFp"/>
<outlet property="delegate" destination="-2" id="kXs-TN-3VL"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="Ccd-U2-Gx5" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="QI6-Cz-URX">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="v8c-Rp-Mnt">
<rect key="frame" x="-2" y="408" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 0:" id="EF7-NX-RMW">
<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>
</gridCell>
<gridCell row="Ccd-U2-Gx5" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="0KQ-Qt-8KP">
<popUpButton key="contentView" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Jw1-t7-YyU">
<rect key="frame" x="104" y="402" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="8Iv-mH-mEI" id="47g-IO-4Xt">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="nrR-Tr-UaW">
<items>
<menuItem title="Item 1" state="on" id="8Iv-mH-mEI"/>
<menuItem title="Item 2" id="Prr-6W-NWp"/>
<menuItem title="Item 3" id="xz3-bi-5IM"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="wPZ-cY-9Ir"/>
<binding destination="-2" name="content" keyPath="machine.sl0" id="2aW-3q-Mvt"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="JGU-aq-3uw" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="Y1R-Ob-g2b">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="0gP-wH-DVr">
<rect key="frame" x="-2" y="377" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 1:" id="bfg-tf-E34">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="JGU-aq-3uw" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="v8q-Rj-E4q">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="1" translatesAutoresizingMaskIntoConstraints="NO" id="bta-RS-JT4">
<rect key="frame" x="104" y="371" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="dXO-at-nGw" id="kNn-6b-ysf">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="4ah-BI-RD5">
<items>
<menuItem title="Item 1" state="on" id="dXO-at-nGw"/>
<menuItem title="Item 2" id="UZY-8b-qmE"/>
<menuItem title="Item 3" id="zxA-OM-BIY"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="hl3-N2-89k"/>
<binding destination="-2" name="content" keyPath="machine.sl1" id="wQI-oy-SYz"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="gVW-Ya-phU" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="tpv-Yc-qii">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="EHZ-ol-QVz">
<rect key="frame" x="-2" y="346" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 2:" id="FlL-pN-rn7">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="gVW-Ya-phU" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="OzN-rM-Pgi">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="2" translatesAutoresizingMaskIntoConstraints="NO" id="cDU-b1-x5a">
<rect key="frame" x="104" y="340" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="vCY-qF-aB3" id="jvL-SH-nvG">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="Hp6-Gt-pVV">
<items>
<menuItem title="Item 1" state="on" id="vCY-qF-aB3"/>
<menuItem title="Item 2" id="pbR-nc-itb"/>
<menuItem title="Item 3" id="L8Z-vH-OCa"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="T5w-C4-Ohq"/>
<binding destination="-2" name="content" keyPath="machine.sl2" id="uXQ-0A-98q"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="3fP-qp-zmi" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="LbW-TT-AQ7">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zGs-8d-L0S">
<rect key="frame" x="-2" y="315" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 3:" id="KZK-h8-8cw">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="3fP-qp-zmi" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="h8H-TB-p2z">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="3" translatesAutoresizingMaskIntoConstraints="NO" id="aSh-cs-0Nn">
<rect key="frame" x="104" y="309" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="2yS-4z-8OR" id="HaE-TD-5Wx">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="zka-z5-hPa">
<items>
<menuItem title="Item 1" state="on" id="2yS-4z-8OR"/>
<menuItem title="Item 2" id="q4H-Fz-zVr"/>
<menuItem title="Item 3" id="HtQ-6y-S25"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="5uS-La-5cM"/>
<binding destination="-2" name="content" keyPath="machine.sl3" id="YgU-fX-fPC"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="86u-5p-UT6" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="hJR-nJ-yYi">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zsX-jd-6ba">
<rect key="frame" x="-2" y="284" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 4:" id="WXv-RF-e7f">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="86u-5p-UT6" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="dHu-cL-FyO">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="4" translatesAutoresizingMaskIntoConstraints="NO" id="kU5-cR-hPZ">
<rect key="frame" x="104" y="278" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="NaS-CV-XQm" id="rOP-eY-UKe">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="Iwv-z3-oJb">
<items>
<menuItem title="Item 1" state="on" id="NaS-CV-XQm"/>
<menuItem title="Item 2" id="ovb-SG-Eg4"/>
<menuItem title="Item 3" id="GVh-L4-3Cp"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="I35-wl-YdH"/>
<binding destination="-2" name="content" keyPath="machine.sl4" id="yfx-hj-6Ly"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="Wdg-xb-xQx" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="dsM-t5-8ng">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ANg-c1-hGf">
<rect key="frame" x="-2" y="253" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 5:" id="EhN-EV-65V">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="Wdg-xb-xQx" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="ffm-pA-jjo">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="5" translatesAutoresizingMaskIntoConstraints="NO" id="8z4-8f-kLU">
<rect key="frame" x="104" y="247" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="gH7-4J-xsg" id="cmc-Gf-Slp">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="Cma-00-qCY">
<items>
<menuItem title="Item 1" state="on" id="gH7-4J-xsg"/>
<menuItem title="Item 2" id="meM-WH-GgP"/>
<menuItem title="Item 3" id="ILg-Ld-9Ri"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="jSe-j9-QUW"/>
<binding destination="-2" name="content" keyPath="machine.sl5" id="Uo1-Rg-wko"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="ein-Fe-vBw" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="PSw-Jx-eS2">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Cr1-RK-Z7V">
<rect key="frame" x="-2" y="222" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 6:" id="uzy-th-5Yc">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="ein-Fe-vBw" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="FsV-vO-KAs">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="6" translatesAutoresizingMaskIntoConstraints="NO" id="GLb-F4-PWe">
<rect key="frame" x="104" y="216" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="VaX-M9-Op0" id="CjU-rC-HUT">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="3xq-Hn-icN">
<items>
<menuItem title="Item 1" state="on" id="VaX-M9-Op0"/>
<menuItem title="Item 2" id="Fhy-5D-e6z"/>
<menuItem title="Item 3" id="9jw-LA-666"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="yZO-kH-P6Q"/>
<binding destination="-2" name="content" keyPath="machine.sl6" id="0ze-xJ-DNX"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="qjB-2w-AWE" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="1WE-Mm-0O3">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="3Ia-XB-C6D">
<rect key="frame" x="-2" y="191" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Slot 7:" id="32J-6e-nRV">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="qjB-2w-AWE" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="Yvr-uR-Hr5">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="7" translatesAutoresizingMaskIntoConstraints="NO" id="IV2-3M-qfw">
<rect key="frame" x="104" y="185" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="8nb-Bq-4R4" id="nKb-Ar-bCb">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="R2a-Mg-LsY">
<items>
<menuItem title="Item 1" state="on" id="8nb-Bq-4R4"/>
<menuItem title="Item 2" id="rFT-bC-KE9"/>
<menuItem title="Item 3" id="4jB-gp-lYT"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="llh-ab-ayK"/>
<binding destination="-2" name="content" keyPath="machine.sl7" id="hT6-pS-WmL"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="EEX-dh-jwn" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="iRl-IX-FSD">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Avf-lX-f2Q">
<rect key="frame" x="-2" y="160" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Expansion:" id="PEU-OV-910">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="EEX-dh-jwn" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="Ehv-aA-Llc">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="8" translatesAutoresizingMaskIntoConstraints="NO" id="San-wP-1ez">
<rect key="frame" x="104" y="154" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="jtv-Qx-oVD" id="42u-b4-3kx">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="1hM-MS-UEz">
<items>
<menuItem title="Item 1" state="on" id="jtv-Qx-oVD"/>
<menuItem title="Item 2" id="UeB-A1-nyv"/>
<menuItem title="Item 3" id="GyZ-dv-MS4"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="fi5-WL-lQa"/>
<binding destination="-2" name="content" keyPath="machine.exp" id="C88-Gb-QTE"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="OaZ-ZQ-gKK" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="wRB-Wh-7kG">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="EMz-7i-H38">
<rect key="frame" x="-2" y="129" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Auxiliary:" id="SoV-Qy-h2g">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="OaZ-ZQ-gKK" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="bx6-Rc-x2V">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="9" translatesAutoresizingMaskIntoConstraints="NO" id="3kq-qn-7YR">
<rect key="frame" x="104" y="123" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="vWX-Cb-ldP" id="NqP-Uq-Knv">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="7Ef-KS-ulj">
<items>
<menuItem title="Item 1" state="on" id="vWX-Cb-ldP"/>
<menuItem title="Item 2" id="Yg1-xZ-vXq"/>
<menuItem title="Item 3" id="BwC-w9-hBy"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="uvt-uD-Adn"/>
<binding destination="-2" name="content" keyPath="machine.aux" id="KA7-7x-qeJ"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="wQi-Oz-7Ye" column="zpB-Rf-dWg" xPlacement="fill" yPlacement="center" id="KoQ-xV-fQu">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JAG-sJ-u2B">
<rect key="frame" x="-2" y="98" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="RS 232:" id="iG2-rY-VDv">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="wQi-Oz-7Ye" column="6Vn-yh-FoQ" xPlacement="fill" yPlacement="center" id="zWk-jd-i0V">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="10" translatesAutoresizingMaskIntoConstraints="NO" id="6ln-U2-0Pi">
<rect key="frame" x="104" y="92" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="uu3-rr-iD8" id="daT-eX-4Vu">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="fMw-mh-Qfi">
<items>
<menuItem title="Item 1" state="on" id="uu3-rr-iD8"/>
<menuItem title="Item 2" id="f1r-MS-itp"/>
<menuItem title="Item 3" id="WhP-Di-CHP"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="gmZ-pW-35n"/>
<binding destination="-2" name="content" keyPath="machine.rs232" id="LxA-8b-jb4"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="gr2-eY-995" column="zpB-Rf-dWg" id="xIE-bJ-mzr">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Svb-pu-WPf">
<rect key="frame" x="-2" y="67" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Game I/O:" id="2Gc-mV-zCZ">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="gr2-eY-995" column="6Vn-yh-FoQ" id="nhy-Gp-GLL">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="11" translatesAutoresizingMaskIntoConstraints="NO" id="K8G-bZ-6mZ">
<rect key="frame" x="104" y="61" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="GOm-Tf-6qc" id="Mig-Nu-gZB">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="faU-zS-LgN">
<items>
<menuItem title="Item 1" state="on" id="GOm-Tf-6qc"/>
<menuItem title="Item 2" id="XgG-U0-2G7"/>
<menuItem title="Item 3" id="4Ea-aE-sB1"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="o53-71-xuf"/>
<binding destination="-2" name="content" keyPath="machine.gameio" id="tJw-AS-RUz"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="1xN-lm-s4l" column="zpB-Rf-dWg" id="vPV-KN-NNp">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="31K-iE-RCe">
<rect key="frame" x="-2" y="36" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Printer:" id="QZI-H7-i8m">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="1xN-lm-s4l" column="6Vn-yh-FoQ" id="KRc-Z8-drK">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="12" translatesAutoresizingMaskIntoConstraints="NO" id="sTp-en-8Wd">
<rect key="frame" x="104" y="30" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="TU9-ed-ofw" id="1OL-aw-xNL">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="MSP-Iu-ix3">
<items>
<menuItem title="Item 1" state="on" id="TU9-ed-ofw"/>
<menuItem title="Item 2" id="7wI-Tn-rE0"/>
<menuItem title="Item 3" id="bQc-pc-ccM"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="Fxc-YB-SF9"/>
<binding destination="-2" name="content" keyPath="machine.printer" id="3l1-Hn-v47"/>
</connections>
</popUpButton>
</gridCell>
<gridCell row="M2s-qn-SIT" column="zpB-Rf-dWg" id="8R2-aA-mLq">
<textField key="contentView" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="MH0-Nk-5Py">
<rect key="frame" x="-2" y="5" width="104" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" title="Modem:" id="HQq-VN-Ju9">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
</gridCell>
<gridCell row="M2s-qn-SIT" column="6Vn-yh-FoQ" id="idI-pW-e7v">
<popUpButton key="contentView" verticalHuggingPriority="750" tag="13" translatesAutoresizingMaskIntoConstraints="NO" id="KHf-kC-BpZ">
<rect key="frame" x="104" y="-1" width="205" height="25"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" selectedItem="CxO-3g-va1" id="jDr-6p-C7y">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" id="lxi-Z0-ya6">
<items>
<menuItem title="Item 1" state="on" id="CxO-3g-va1"/>
<menuItem title="Item 2" id="OpR-vy-iL5"/>
<menuItem title="Item 3" id="xvH-9B-ge5"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="pHW-GG-2VQ"/>
<binding destination="-2" name="content" keyPath="machine.modem" id="hFa-pj-NnN"/>
</connections>
</popUpButton>
</gridCell>
</gridCells>
<point key="canvasLocation" x="268" y="71"/>
</gridView>
<userDefaultsController representsSharedInstance="YES" id="ZGN-Cx-9po"/>
</outlineView>
</subviews>
<color key="backgroundColor" name="windowBackgroundColor" catalog="System" colorSpace="catalog"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="rYF-ld-adB">
<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="4pL-Dn-e75" 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>
<point key="canvasLocation" x="-100" y="154"/>
</scrollView>
<viewController id="ziL-Zf-s1k" userLabel="Popover View Controller">
<connections>
<outlet property="view" destination="uew-UQ-Q25" id="qjB-ya-gFf"/>
</connections>
</viewController>
<popover behavior="t" id="QIT-2T-wdy">
<connections>
<outlet property="contentViewController" destination="ziL-Zf-s1k" id="rj8-2U-9t0"/>
</connections>
</popover>
<customView id="uew-UQ-Q25">
<rect key="frame" x="0.0" y="0.0" width="250" height="400"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
<subviews>
<button id="2jh-iq-DV6">
<rect key="frame" x="232" y="382" width="14" height="14"/>
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
<buttonCell key="cell" type="square" bezelStyle="shadowlessSquare" image="NSStopProgressFreestandingTemplate" imagePosition="only" alignment="center" imageScaling="proportionallyUpOrDown" inset="2" id="Wp7-Km-kYI">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
<string key="keyEquivalent" base64-UTF8="YES">
Gw
</string>
</buttonCell>
<connections>
<action selector="performClose:" target="QIT-2T-wdy" id="Q04-24-ZOK"/>
</connections>
</button>
<scrollView focusRingType="none" borderType="none" autohidesScrollers="YES" horizontalLineScroll="27" horizontalPageScroll="10" verticalLineScroll="27" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="5gB-oE-Gza">
<rect key="frame" x="0.0" y="20" width="250" height="360"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<clipView key="contentView" focusRingType="none" drawsBackground="NO" copiesOnScroll="NO" id="X5e-Ka-JLr">
<rect key="frame" x="0.0" y="0.0" width="250" height="360"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" selectionHighlightStyle="none" columnReordering="NO" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" typeSelect="NO" rowHeight="25" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" autoresizesOutlineColumn="YES" outlineTableColumn="o1K-z1-KVi" id="uM0-Gk-crn">
<rect key="frame" x="0.0" y="0.0" width="250" height="360"/>
<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="230" minWidth="40" maxWidth="1000" id="o1K-z1-KVi">
<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="A12-NQ-gW3">
<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"/>
<prototypeCellViews>
<tableCellView identifier="MenuCell" id="Mgb-8H-DmI" customClass="SlotTableCellView">
<rect key="frame" x="1" y="1" width="230" height="25"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<popUpButton verticalHuggingPriority="750" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ThL-Yz-7Kd">
<rect key="frame" x="1" y="0.0" width="229" height="25"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<popUpButtonCell key="cell" type="push" title="Item 1" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" autoenablesItems="NO" selectedItem="djR-rV-wzX" id="SkW-fW-gwL">
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="menu"/>
<menu key="menu" autoenablesItems="NO" id="7Ib-TL-f6U">
<items>
<menuItem title="Item 1" state="on" id="djR-rV-wzX"/>
<menuItem title="Item 2" id="qbC-4D-6t6"/>
<menuItem title="Item 3" id="qPv-x5-zpj"/>
</items>
</menu>
</popUpButtonCell>
<connections>
<action selector="menuChanged:" target="-2" id="ytA-nD-fIS"/>
</connections>
</popUpButton>
</subviews>
<connections>
<outlet property="menuButton" destination="ThL-Yz-7Kd" id="3Oc-hx-qKl"/>
</connections>
</tableCellView>
</prototypeCellViews>
</tableColumn>
</tableColumns>
<connections>
<outlet property="dataSource" destination="-2" id="HXP-pH-3Lc"/>
<outlet property="delegate" destination="-2" id="nwb-IL-MsP"/>
</connections>
</outlineView>
</subviews>
<color key="backgroundColor" white="1" alpha="0.0" colorSpace="custom" customColorSpace="calibratedWhite"/>
</clipView>
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="Keh-oo-CPO">
<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="wtc-gL-alh" customClass="TransparentScroller">
<rect key="frame" x="224" y="17" width="15" height="102"/>
<autoresizingMask key="autoresizingMask"/>
</scroller>
</scrollView>
</subviews>
<point key="canvasLocation" x="-451" y="61"/>
</customView>
</objects>
<resources>
<image name="NSListViewTemplate" width="14" height="10"/>
<image name="NSStopProgressFreestandingTemplate" width="14" height="14"/>
</resources>
</document>
+34
View File
@@ -0,0 +1,34 @@
//
// BookmarkManager.h
// Ample
//
// Created by Kelvin Sherlock on 6/1/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#import <Foundation/Foundation.h>
@class NSMenu;
NS_ASSUME_NONNULL_BEGIN
@interface BookmarkManager : NSObject
@property (weak) IBOutlet NSMenu *menu;
+(instancetype)sharedManager;
-(void)loadBookmarks;
-(void)updateMenu;
-(BOOL)validateName: (NSString *)name;
-(BOOL)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name;
-(NSDictionary *)loadBookmarkFromURL: (NSURL *)url;
-(BOOL)saveDefault: (NSDictionary *)bookmark;
-(NSDictionary *)loadDefault;
@end
NS_ASSUME_NONNULL_END
+214
View File
@@ -0,0 +1,214 @@
//
// BookmarkManager.m
// Ample
//
// Created by Kelvin Sherlock on 6/1/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#import "BookmarkManager.h"
#import "Ample.h"
@interface BookmarkManager () {
NSArray<NSURL *> *_urls;
NSURL *_bookmarkDirectory;
}
@end
@implementation BookmarkManager
static BookmarkManager *singleton = nil;
-(void)awakeFromNib {
if (!singleton) singleton = self;
}
+(instancetype)sharedManager {
if (!singleton) singleton = [BookmarkManager new];
return singleton;
}
-(instancetype)init {
if (singleton) return singleton;
return [super init];
}
-(NSURL *)bookmarkDirectory {
if (_bookmarkDirectory) return _bookmarkDirectory;
NSFileManager *fm = [NSFileManager defaultManager];
NSURL *url = SupportDirectory();
url = [url URLByAppendingPathComponent: @"Bookmarks"];
NSError *error = nil;
[fm createDirectoryAtURL: url withIntermediateDirectories: YES attributes: nil error: &error];
if (error) NSLog(@"%@", error);
_bookmarkDirectory = url;
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"];
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;
}
/* save as .Default */
-(BOOL)saveDefault: (NSDictionary *)bookmark {
NSURL *url = [self bookmarkDirectory];
url = [url URLByAppendingPathComponent: @".Default"];
NSError *error = nil;
BOOL ok = NO;
if (@available(macOS 10.13, *)) {
ok = [bookmark writeToURL: url error: &error];
if (!ok) NSLog(@"%@", error);
} else {
ok = [bookmark writeToURL: url atomically: YES];
}
return ok;
}
-(BOOL)saveBookmark: (NSDictionary *)bookmark name: (NSString *)name {
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];
if (!ok) {
for (unsigned i = 1 ; i < 100; ++i) {
NSString *tmp = [name stringByAppendingFormat: @"(%d)", i];
[base URLByAppendingPathComponent: tmp];
ok = [data writeToURL: url options: NSDataWritingWithoutOverwriting error: &error];
if (ok) {
name = tmp;
break;
}
}
}
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(loadBookmark:) 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];
}
return YES;
}
-(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;
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;
}
-(void)updateMenu {
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];
NSMenuItem *item = [_menu addItemWithTitle: title action: @selector(loadBookmark:) keyEquivalent: @""];
[item setRepresentedObject: url];
[item setTag: 0xdeadbeef];
}
}
@end
+14
View File
@@ -27,6 +27,20 @@
- (void)windowDidLoad {
[super windowDidLoad];
if (!_webView) {
WKWebView *webView;
NSWindow *window = [self window];
CGRect frame = [[window contentView] frame];
webView = [WKWebView new];
[webView setFrame: frame];
[webView setNavigationDelegate: self];
[[window contentView]addSubview: webView];
_webView = webView;
}
[_webView setHidden: YES];
NSBundle *bundle = [NSBundle mainBundle];
NSURL *url = [bundle URLForResource: @"CheatSheet" withExtension: @"html"];
+2 -2
View File
@@ -3,7 +3,7 @@
<plist version="1.0">
<dict>
<key>MameComponentsDate</key>
<date>2021-02-24T17:00:00Z</date>
<date>2021-05-27T16:00:00Z</date>
<key>UseCustomMame</key>
<false/>
<key>AutoCloseLogWindow</key>
@@ -15,7 +15,7 @@
<key>NSQuitAlwaysKeepsWindows</key>
<true/>
<key>DefaultDownloadURL</key>
<string>https://archive.org/download/mame0.224</string>
<string>https://archive.org/download/mame.0229</string>
<key>DefaultDownloadExtension</key>
<string>zip</string>
</dict>
+21 -4
View File
@@ -67,8 +67,11 @@
[window setRestorable: YES];
[window setRestorationClass: [self class]];
[_tableView registerForDraggedTypes: @[NSPasteboardTypeFileURL]];
if (@available(macOS 10.13, *)) {
[_tableView registerForDraggedTypes: @[NSPasteboardTypeFileURL]];
} else {
[_tableView registerForDraggedTypes: @[ (NSString *)kUTTypeFileURL ]];
}
[_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.
@@ -95,6 +98,11 @@
[nc addObserver: self selector: @selector(willTerminate:) name: NSApplicationWillTerminateNotification object: nil];
}
-(void)timerCallback: (NSTimer *)timer {
_timer = nil;
[self saveFile];
}
-(void)diskImageAdded: (NSNotification *)notification {
NSURL *url = [notification object];
@@ -105,11 +113,15 @@
-(void)markDirty {
_dirty = YES;
if (_timer) [_timer invalidate];
_timer = [NSTimer scheduledTimerWithTimeInterval: 5 * 60 target: self selector: @selector(timerCallback:) userInfo: nil repeats: NO];
#if 0
// 10.12+
_timer = [NSTimer scheduledTimerWithTimeInterval: 5 * 60 repeats: NO block: ^(NSTimer *t) {
self->_timer = nil;
[self saveFile];
}];
#endif
}
-(void)saveFile {
@@ -306,11 +318,16 @@
for (NSPasteboardItem *item in [pb pasteboardItems]) {
// need to convert from a string to a url back to a file in case it's a file id url?
NSString *s = [item stringForType: NSPasteboardTypeFileURL];
NSString *s;
if (@available(macOS 10.13, *)) {
s = [item stringForType: NSPasteboardTypeFileURL];
} else {
// El Capitan still has kUTTypeFileURL aka public.file-url but doesn't have NSPasteboardTypeFileURL
s = [item stringForType: (NSString *)kUTTypeFileURL];
}
if (!s) continue;
NSURL *url = [NSURL URLWithString: s];
if (!url) continue;
ok |= [self addFile: url];
}
return ok;
+259 -22
View File
@@ -9,20 +9,26 @@
#import "Ample.h"
#import "LaunchWindowController.h"
#import "MediaViewController.h"
#import "NewSlotViewController.h"
#import "SlotViewController.h"
#import "MachineViewController.h"
#import "LogWindowController.h"
#import "AutocompleteControl.h"
#import "SoftwareList.h"
#import "BookmarkManager.h"
#include <sys/stat.h>
#include <wctype.h>
static NSString *kMyContext = @"kMyContext";
static NSString *kContextMachine = @"kContextMachine";
@interface LaunchWindowController ()
@interface LaunchWindowController () {
BOOL _loadingBookmark;
}
@property (strong) IBOutlet MediaViewController *mediaController;
@property (strong) IBOutlet NewSlotViewController *slotController;
@property (strong) IBOutlet SlotViewController *slotController;
@property (strong) IBOutlet MachineViewController *machineViewController;
@property (weak) IBOutlet NSView *machineView;
@@ -37,6 +43,8 @@ static NSString *kContextMachine = @"kContextMachine";
@property BOOL mameDebug;
@property BOOL mameSquarePixels;
@property BOOL mameMouse;
@property BOOL mameSamples;
@property BOOL mameBGFX;
@property BOOL mameAVI;
@property BOOL mameWAV;
@@ -45,18 +53,57 @@ static NSString *kContextMachine = @"kContextMachine";
@property NSString *mameAVIPath;
@property NSString *mameWAVPath;
@property NSString *mameVGMPath;
@property NSString *mameShareDirectory;
@property NSString *mameBitBanger;
@property NSInteger mameSpeed;
@property BOOL mameBGFX;
@property NSInteger mameBackend;
@property NSInteger mameEffects;
@property NSInteger mameWindowMode;
@property (weak) IBOutlet AutocompleteControl *softwareListControl;
@property SoftwareSet *softwareSet;
@property Software *software;
@property (strong) IBOutlet NSWindow *addBookmarkWindow;
@property (strong) NSString *bookmarkName;
@property (weak) IBOutlet NSTextField *bookmarkTextField;
@end
@interface LaunchWindowController (SoftwareList)
-(void)updateSoftwareList;
@end
@interface LaunchWindowController (Bookmark)
-(IBAction)addBookmark:(id)sender;
@end
static NSString *BackendStrings[] = {
@"",
@"metal",
@"opengl",
};
static NSString *EffectsStrings[] = {
@"-",
@"unfiltered",
@"hlsl",
@"crt-geom",
@"crt-geom-deluxe",
@"lcd-grid",
};
@implementation LaunchWindowController
@@ -68,6 +115,7 @@ static NSString *kContextMachine = @"kContextMachine";
[self setMameSpeed: 1];
[self setMameBGFX: YES];
[self setMameMouse: NO];
[self setMameSamples: YES];
}
- (void)windowDidLoad {
@@ -82,14 +130,17 @@ static NSString *kContextMachine = @"kContextMachine";
NSArray *keys = @[
@"mameMachine", @"mameSquarePixels", @"mameWindowMode",
@"mameMouse",
//@"mameMachine", // - handled
@"mameSquarePixels", @"mameWindowMode",
@"mameMouse", @"mameSamples",
@"mameDebug",
@"mameSpeed",
@"mameAVI", @"mameAVIPath",
@"mameWAV", @"mameWAVPath",
@"mameVGM", @"mameVGMPath",
@"mameShareDirectory", @"mameBitBanger",
@"mameBGFX", @"mameBackend", @"mameEffects",
@"software",
];
for (NSString *key in keys) {
@@ -104,6 +155,10 @@ static NSString *kContextMachine = @"kContextMachine";
[_machineViewController addObserver: self forKeyPath: @"machine" options: 0 context: (__bridge void * _Nullable)kContextMachine];
[_softwareListControl setMinWidth: 250];
[_softwareListControl setHidden: YES];
[self buildCommandLine];
}
@@ -111,11 +166,15 @@ static NSString *kContextMachine = @"kContextMachine";
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
if (context == (__bridge void *)kMyContext) {
if (_loadingBookmark) return;
[self buildCommandLine];
} else if (context == (__bridge void *)kContextMachine) {
if (_loadingBookmark) return;
NSString *machine = [_machineViewController machine];
[self setMameMachine: machine];
[_slotController setMachine: machine];
[self updateSoftwareList];
[self buildCommandLine];
} else {
[super observeValueForKeyPath: keyPath ofObject: object change: change context: context];
@@ -274,6 +333,13 @@ static NSString *ShellQuote(NSString *s) {
//[argv addObject: @"mame"];
[argv addObject: _mameMachine];
if (_software) {
NSString *name = [_software name];
if (![_softwareSet nameIsUnique: name])
name = [_software fullName];
[argv addObject: name];
}
// -confirm_quit?
[argv addObject: @"-skip_gameinfo"];
@@ -281,6 +347,9 @@ static NSString *ShellQuote(NSString *s) {
if (_mameMouse)
[argv addObject: @"-mouse"]; // capture the mouse cursor when over the window.
if (!_mameSamples)
[argv addObject: @"-nosamples"];
if (_mameDebug) [argv addObject: @"-debug"];
@@ -332,24 +401,12 @@ static NSString *ShellQuote(NSString *s) {
if (_mameBGFX) {
if (_mameBackend) {
static NSString *Names[] = {
@"-",
@"metal",
@"opengl",
};
[argv addObject: @"-bgfx_backend"];
[argv addObject: Names[_mameBackend]];
[argv addObject: BackendStrings[_mameBackend]];
}
if (_mameEffects) {
static NSString *Names[] = {
@"-",
@"unfiltered",
@"hlsl",
@"crt-geom",
@"crt-geom-deluxe",
};
[argv addObject: @"-bgfx_screen_chains"];
[argv addObject: Names[_mameEffects]];
[argv addObject: EffectsStrings[_mameEffects]];
}
} else {
@@ -399,6 +456,16 @@ static NSString *ShellQuote(NSString *s) {
}
}
if (_mameShareDirectory && [_mameShareDirectory length]) {
[argv addObject: @"-share_directory"];
[argv addObject: _mameShareDirectory];
}
if (_mameBitBanger && [_mameBitBanger length]) {
[argv addObject: @"-bitbanger"];
[argv addObject: _mameBitBanger];
}
[self setCommandLine: JoinArguments(argv, nil)];
[self setArgs: argv];
}
@@ -409,13 +476,19 @@ static NSString *ShellQuote(NSString *s) {
if (cmd == @selector(exportShellScript:)) {
return [_args count] ? YES : NO;
}
return [super validateMenuItem: menuItem];
if (cmd == @selector(addBookmark:)) {
return _mameMachine ? YES : NO;
}
return YES;
//return [super validateMenuItem: menuItem]; // not implemented?
}
# pragma mark - IBActions
- (IBAction)launchAction:(id)sender {
[[self window] makeFirstResponder: nil]; // in case text is being edited...
if (![_args count]) return;
[LogWindowController controllerForArgs: _args];
@@ -425,9 +498,12 @@ static NSString *ShellQuote(NSString *s) {
-(IBAction)exportShellScript: (id)sender {
NSSavePanel *p = [NSSavePanel savePanel];
NSString *defaultName = [_mameMachine stringByAppendingString: @".sh"];
[p setTitle: @"Export Shell Script"];
[p setExtensionHidden: NO];
[p setNameFieldStringValue: @"mame.sh"];
[p setNameFieldStringValue: defaultName];
//[p setDelegate: self];
@@ -466,3 +542,164 @@ static NSString *ShellQuote(NSString *s) {
@end
@implementation LaunchWindowController (SoftwareList)
-(void)updateSoftwareList {
_softwareSet = [SoftwareSet softwareSetForMachine: _mameMachine];
[_softwareListControl setAutocompleteDelegate: _softwareSet];
if (_softwareSet) {
[_softwareListControl invalidate];
[_softwareListControl setHidden: NO];
} else {
_software = nil;
[_softwareListControl setHidden: YES];
}
}
- (IBAction)softwareChanged:(id)sender {
id o = [(NSControl *)sender objectValue];
//NSLog(@"%@", o);
[self setSoftware: o];
}
@end
@implementation LaunchWindowController (Bookmark)
-(IBAction)addBookmark:(id)sender {
if (!_mameMachine) return;
NSString *name = _mameMachine;
if (_software) {
name = [name stringByAppendingFormat: @" - %@", [_software title]];
}
[self setBookmarkName: name];
[_bookmarkTextField selectText: nil];
[[self window] beginSheet: _addBookmarkWindow completionHandler: nil];
}
-(IBAction)bookmarkCancel:(id)sender {
[[self window] endSheet: _addBookmarkWindow];
[_addBookmarkWindow orderOut: nil];
}
-(IBAction)bookmarkSave:(id)sender {
BookmarkManager *bm = [BookmarkManager sharedManager];
if (![bm validateName: _bookmarkName]) {
[_bookmarkTextField selectText: nil];
NSBeep();
return;
}
//NSLog(@"%@", _bookmarkName);
NSDictionary *d = [self makeBookmark];
//NSLog(@"%@", d);
[bm saveBookmark: d name: _bookmarkName];
[[self window] endSheet: _addBookmarkWindow];
[_addBookmarkWindow orderOut: nil];
[self setBookmarkName: nil];
}
-(IBAction)loadBookmark:(id)sender {
NSURL *url = [sender representedObject];
if (!url) return;
NSDictionary *d = [NSDictionary dictionaryWithContentsOfURL: url];
if (!d) return; // oops...
NSString *machine = [d objectForKey: @"machine"];
if (!machine) return;
_loadingBookmark = YES;
[_machineViewController willLoadBookmark: d];
[_slotController willLoadBookmark: d];
[_mediaController willLoadBookmark: d];
[self setMameMachine: machine];
[self updateSoftwareList];
[_softwareListControl setStringValue: [d objectForKey: @"software"]];
[_machineViewController loadBookmark: d];
[_slotController loadBookmark: d];
[_mediaController loadBookmark: d];
[_machineViewController didLoadBookmark: d];
[_slotController didLoadBookmark: d];
[_mediaController didLoadBookmark: d];
_loadingBookmark = NO;
[self buildCommandLine];
}
-(NSDictionary *)makeBookmark {
[[self window] makeFirstResponder: nil];
NSMutableDictionary *dict = [NSMutableDictionary new];
[dict setObject: _mameMachine forKey: @"machine"];
[dict setObject: @232 forKey: @"version"];
[_machineViewController saveBookmark: dict];
[_slotController saveBookmark: dict];
[_mediaController saveBookmark: dict];
// Boolean values
#undef _
#define _(v,k) [dict setObject: v ? (NSObject *)kCFBooleanTrue : (NSObject *)kCFBooleanFalse forKey: k]
_(_mameDebug, @"debug");
_(_mameSquarePixels, @"squarePixels");
_(_mameMouse, @"mouse");
_(_mameSamples, @"samples");
_(_mameBGFX, @"bgfx");
// numeric values
#undef _
#define _(v,k) [dict setObject: @(v) forKey: k]
_(_mameWindowMode, @"windowMode");
_(_mameSpeed, @"speed");
// String values
#undef _
#define _(v,k) [dict setObject: v forKey: k]
if (_mameAVI && [_mameAVIPath length]) _(_mameAVIPath, @"AVIPath");
if (_mameWAV && [_mameWAVPath length]) _(_mameWAVPath, @"WAVPath");
if (_mameVGM && [_mameVGMPath length]) _(_mameVGMPath, @"VGMPath");
if ([_mameShareDirectory length]) _(_mameShareDirectory, @"shareDirectory");
if ([_mameBitBanger length]) _(_mameBitBanger, @"shareDirectory");
if (_software) _([_software fullName], @"software");
if (_mameBackend) _(BackendStrings[_mameBackend], @"backend");
if (_mameEffects) _(EffectsStrings[_mameEffects], @"effects");
return dict;
#undef _
}
@end
+51 -9
View File
@@ -53,9 +53,16 @@ static NSMutableSet *LogWindows;
}
NSTask *task = [NSTask new];
[task setExecutableURL: url];
if (@available(macOS 10.13, *)) {
[task setExecutableURL: url];
[task setCurrentDirectoryURL: MameWorkingDirectory()];
} else {
[task setLaunchPath: MamePath()];
[task setCurrentDirectoryPath: MameWorkingDirectoryPath()];
}
[task setArguments: args];
[task setCurrentDirectoryURL: MameWorkingDirectory()];
return [LogWindowController controllerForTask: task];
}
@@ -79,25 +86,51 @@ static NSMutableSet *LogWindows;
}
}
-(void)appendAttributedString: (NSAttributedString *)string {
if ([string length]) {
[[_textView textStorage] appendAttributedString: string];
}
}
-(NSError *)runTask: (NSTask *)task {
if (_task) return nil;
NSError *error = nil;
NSPipe *pipe = [NSPipe pipe];
// window not yet loaded until [self window] called.
const char *path = [[task executableURL] fileSystemRepresentation];
// if (cp) [self appendString: [NSString stringWithFormat: @"MAME path: %s", cp]];
const char *wd = [[task currentDirectoryURL] fileSystemRepresentation];
// if (cp) [self appendString: [NSString stringWithFormat: @"Working Directory: %s", cp]];
const char *path = nil;
const char *wd = nil;
[task setStandardError: pipe];
[task setStandardOutput: pipe];
[task launchAndReturnError: &error];
if (@available(macOS 10.13, *)) {
NSError *error = nil;
path = [[task executableURL] fileSystemRepresentation];
wd = [[task currentDirectoryURL] fileSystemRepresentation];
[task launchAndReturnError: &error];
if (error) {
NSLog(@"NSTask error. Path = %s error = %@", path, error);
return error;
}
} else {
path = [[task launchPath] fileSystemRepresentation];
wd = [[task currentDirectoryPath] fileSystemRepresentation];
@try {
[task launch];
} @catch (NSException *exception) {
NSLog(@"NSTask exception. Path = %s exception = %@", path, exception);
return nil; // ?
}
}
#if 0
if (error) {
// NSURL *url = [task executableURL];
// NSString *path = [NSString stringWithCString: [url fileSystemRepresentation] encoding: NSUTF8StringEncoding];
@@ -106,6 +139,7 @@ static NSMutableSet *LogWindows;
// [self appendString: [error description]];
return error;
}
#endif
_task = task;
NSString *title = [NSString stringWithFormat: @"Ample Log - %u", [task processIdentifier]];
[[self window] setTitle: title];
@@ -197,4 +231,12 @@ static NSMutableSet *LogWindows;
[LogWindows removeObject: self];
}
#pragma mark - IBActions
- (IBAction)clearLog:(id)sender {
NSAttributedString *empty = [NSAttributedString new];
[[_textView textStorage] setAttributedString: empty];
}
@end
+5
View File
@@ -8,6 +8,7 @@
#import <Foundation/Foundation.h>
#import <Cocoa/Cocoa.h>
#import "Ample.h"
NS_ASSUME_NONNULL_BEGIN
@@ -17,4 +18,8 @@ NS_ASSUME_NONNULL_BEGIN
@end
@interface MachineViewController (Bookmark) <Bookmark>
@end
NS_ASSUME_NONNULL_END
+62
View File
@@ -110,5 +110,67 @@
return [data count];
}
@end
@implementation MachineViewController (Bookmark)
-(BOOL)loadBookmark: (NSDictionary *)bookmark {
NSBrowser *browser = (NSBrowser *)[self view];
NSString *machine = [bookmark objectForKey: @"machine"];
NSIndexPath *path = nil;
NSUInteger ix[2] = {0, 0 };
for (NSDictionary *d in _data) {
NSArray *children = [d objectForKey: @"children"];
for (NSDictionary *dd in children) {
NSString *value = [dd objectForKey: @"value"];
if ([machine isEqualToString: value]) {
path = [NSIndexPath indexPathWithIndexes: ix length: 2];
[browser selectRow: ix[0] inColumn: 0];
[browser selectRow: ix[1] inColumn: 1];
//[browser setSelectionIndexPath: path];
return YES;
}
++ix[1];
}
ix[1] = 0;
// check parent after.
NSString *value = [d objectForKey: @"value"];
if ([machine isEqualToString: value]) {
path = [NSIndexPath indexPathWithIndexes: ix length: 1];
[browser selectRow: ix[0] inColumn: 0];
// "setSelectionIndexPath: is not supported for browsers with matrix delegates."
//[browser setSelectionIndexPath: path];
return YES;
}
++ix[0];
}
NSLog(@"MachineViewController: Unable to find %@", machine);
return NO;
}
-(BOOL)saveBookmark: (NSMutableDictionary *)bookmark {
// machine saved in parent.
return YES;
}
-(void)willLoadBookmark:(NSDictionary *)bookmark {
}
-(void)didLoadBookmark:(NSDictionary *)bookmark {
}
@end
+30
View File
@@ -0,0 +1,30 @@
//
// Media.h
// Ample
//
// Created by Kelvin Sherlock on 3/7/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#ifndef Media_h
#define Media_h
typedef struct Media {
unsigned cass;
unsigned cdrom;
unsigned hard;
unsigned floppy_5_25;
unsigned floppy_3_5;
unsigned pseudo_disk;
} Media;
struct Media MediaFromDictionary(NSDictionary *);
void MediaAdd(Media *dest, const Media *src);
BOOL MediaEqual(const Media *lhs, const Media *rhs);
extern const Media EmptyMedia;
#endif /* Media_h */
+58
View File
@@ -0,0 +1,58 @@
//
// Media.m
// Ample
//
// Created by Kelvin Sherlock on 3/7/2021.
// Copyright © 2021 Kelvin Sherlock. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "Media.h"
const Media EmptyMedia = { 0 };
struct Media MediaFromDictionary(NSDictionary *dict) {
Media m = { 0 };
#define _(name) m.name = [[dict objectForKey: @ # name] unsignedIntValue]
_(cass);
_(cdrom);
_(hard);
_(floppy_3_5);
_(floppy_5_25);
_(pseudo_disk);
return m;
#undef _
}
void MediaAdd(Media *dest, const Media *src) {
if (!src || !dest) return;
#define _(name) dest->name += src->name;
_(cass);
_(cdrom);
_(hard);
_(floppy_3_5);
_(floppy_5_25);
_(pseudo_disk);
#undef _
}
BOOL MediaEqual(const Media *lhs, const Media *rhs) {
if (lhs == rhs) return YES;
if (!lhs || !rhs) return NO;
#define _(name) if (lhs->name != rhs->name) return NO;
_(cass);
_(cdrom);
_(hard);
_(floppy_3_5);
_(floppy_5_25);
_(pseudo_disk);
return YES;
#undef _
}
+5 -2
View File
@@ -7,20 +7,23 @@
//
#import <Cocoa/Cocoa.h>
#import "Media.h"
#import "Ample.h"
NS_ASSUME_NONNULL_BEGIN
@interface MediaViewController : NSViewController <NSOutlineViewDelegate, NSOutlineViewDataSource>
@property (weak) IBOutlet NSOutlineView *outlineView;
@property (nonatomic) NSDictionary *media;
@property (nonatomic) Media media;
@property NSArray *args;
- (IBAction)ejectAction:(id)sender;
- (IBAction)pathAction:(id)sender;
@end
//-(void)setMedia: (NSDictionary *)media;
@interface MediaViewController (Bookmark) <Bookmark>
@end
+160 -51
View File
@@ -51,6 +51,10 @@
@implementation MediaCategory
+(instancetype)categoryWithTitle: (NSString *)title {
return [[self alloc] initWithTitle: title];
}
-(instancetype)initWithTitle: (NSString *)title {
[self setTitle: title];
return self;
@@ -76,6 +80,8 @@
}
-(void)prepareView: (NSTableCellView *)view {
[view setObjectValue: self];
[[view textField] setStringValue: _title];
}
@@ -205,6 +211,8 @@
NSValueTransformer *t;
NSDictionary *options;
[view setObjectValue: self];
NSPathControl *pc = [view pathControl];
NSButton *button = [view ejectButton];
@@ -214,15 +222,20 @@
[pc bind: @"enabled" toObject: self withKeyPath: @"valid" options: options];
[button unbind: @"enabled"];
[button unbind: @"contentTintColor"];
t = [NSValueTransformer valueTransformerForName: NSIsNotNilTransformerName];
options = @{ NSValueTransformerBindingOption: t};
[button bind: @"enabled" toObject: self withKeyPath: @"url" options: options];
t = [NSValueTransformer valueTransformerForName: @"ValidColorTransformer"];
options = @{ NSValueTransformerBindingOption: t};
[button bind: @"contentTintColor" toObject: self withKeyPath: @"valid" options: options];
if (@available(macOS 10.14, *)) {
[button unbind: @"contentTintColor"];
t = [NSValueTransformer valueTransformerForName: @"ValidColorTransformer"];
options = @{ NSValueTransformerBindingOption: t};
[button bind: @"contentTintColor" toObject: self withKeyPath: @"valid" options: options];
} else {
// El Capitan TODO...
}
#if 0
NSColor *tintColor = nil;
if (!_valid) tintColor = [NSColor systemRedColor];
@@ -248,13 +261,25 @@
MediaCategory *_data[CATEGORY_COUNT];
NSArray *_root;
NSDictionary *_media;
Media _media;
BOOL _loadingBookmark;
}
@end
@implementation MediaViewController
enum {
kIndexFloppy525 = 0,
kIndexFloppy35,
kIndexHardDrive,
kIndexCDROM,
kIndexCassette,
kIndexDiskImage,
};
-(void)awakeFromNib {
static unsigned first = 0;
@@ -262,35 +287,18 @@
if (first) return;
first++;
MediaCategory *a, *b, *c, *d, *e, *f;
a = [[MediaCategory alloc] initWithTitle: @"5.25\" Floppies"];
b = [[MediaCategory alloc] initWithTitle: @"3.5\" Floppies"];
c = [[MediaCategory alloc] initWithTitle: @"Hard Drives"];
d = [[MediaCategory alloc] initWithTitle: @"CD-ROMs"];
e = [[MediaCategory alloc] initWithTitle: @"Cassettes"];
f = [[MediaCategory alloc] initWithTitle: @"Hard Disk Images"]; // Mac Nubus psuedo image device
_data[0] = a;
_data[1] = b;
_data[2] = c;
_data[3] = d;
_data[4] = e;
_data[5] = f;
_data[kIndexFloppy525] = [MediaCategory categoryWithTitle: @"5.25\" Floppies"];
_data[kIndexFloppy35] = [MediaCategory categoryWithTitle: @"3.5\" Floppies"];
_data[kIndexHardDrive] = [MediaCategory categoryWithTitle: @"Hard Drives"];
_data[kIndexCDROM] = [MediaCategory categoryWithTitle: @"CD-ROMs"];
_data[kIndexCassette] = [MediaCategory categoryWithTitle: @"Cassettes"];
_data[kIndexDiskImage] = [MediaCategory categoryWithTitle: @"Hard Disk Images"]; // Mac Nubus psuedo image device
_root = @[];
}
enum {
kIndexFloppy_5_25 = 0,
kIndexFloppy_3_5,
kIndex_HardDrive,
kIndexCDROM,
kIndexCassette,
kIndexDisk,
};
-(void)rebuildArgs {
@@ -343,36 +351,49 @@ enum {
[_outlineView expandItem: nil expandChildren: YES];
}
-(void)setMedia: (NSDictionary *)media {
-(void)setMedia: (Media)media {
static NSString *Keys[] = {
@"flop_5_25",
@"flop_3_5",
@"hard",
@"cdrm",
@"cass",
@"disk",
};
static_assert(SIZEOF(Keys) == CATEGORY_COUNT, "Missing item");
NSNumber *o;
MediaCategory *cat;
unsigned i;
BOOL delta = NO;
if (_media == media) return;
unsigned x;
if (MediaEqual(&_media, &media)) return;
_media = media;
#undef _
#define _(name, index) \
x = media.name; cat = _data[index]; delta |= [cat setItemCount: x]
_(cass, kIndexCassette);
_(cdrom, kIndexCDROM);
_(hard, kIndexHardDrive);
_(floppy_3_5, kIndexFloppy35);
_(floppy_5_25, kIndexFloppy525);
_(pseudo_disk, kIndexDiskImage);
if (delta) {
[self rebuildRoot];
[self rebuildArgs];
}
}
-(void)resetDiskImages {
BOOL delta = NO;
for (unsigned j = 0; j < CATEGORY_COUNT; ++j) {
o = [media objectForKey: Keys[j]];
i = [o unsignedIntValue];
cat = _data[j];
delta |= [cat setItemCount: i];
}
MediaCategory *cat = _data[j];
NSInteger count = [cat count];
for (NSInteger i = 0; i < count; ++i) {
MediaItem *item = [cat objectAtIndex: i];
NSURL *url = [item url];
if (!url) continue;
[item setUrl: nil];
delta = YES;
}
}
if (delta) {
[self rebuildRoot];
[self rebuildArgs];
@@ -644,4 +665,92 @@ static NSString *kDragType = @"private.ample.media";
[self rebuildArgs];
}
@end
@implementation MediaViewController (Bookmark)
-(BOOL)loadBookmark: (NSDictionary *)bookmark {
#if 0
// hmmm... should rely on machine/slots to set media
// so it doesn't go out of sync after an update.
NSDictionary *d = [bookmark objectForKey: @"media"];
Media m = EmptyMedia;
if (d) m = MediaFromDictionary(d);
[self setMedia: m];
#endif
// reset all media
[self resetDiskImages];
// if order of indexes change, would need to do a version check.
NSArray *media = [bookmark objectForKey: @"media"];
unsigned ix = 0;
for (NSArray *a in media) {
if (ix >= CATEGORY_COUNT) {
NSLog(@"MediaViewController: too many categories.");
break;
}
MediaCategory *cat = _data[ix++];
NSInteger count = [cat count];
unsigned i = 0;
for (NSString *path in a) {
if (i >= count) {
NSLog(@"MediaViewController: too many files.");
break; //
}
MediaItem *item = [cat objectAtIndex: i++];
NSURL *url = nil;
if ([path length])
url = [NSURL fileURLWithPath: path];
[item setUrl: url];
}
}
// add will load bookmark / did load bookmark to block all the rebuilding ?
[self rebuildRoot];
[self rebuildArgs];
return YES;
}
-(BOOL)saveBookmark: (NSMutableDictionary *)bookmark {
NSMutableArray *media = [NSMutableArray arrayWithCapacity: CATEGORY_COUNT];
for (unsigned ix = 0; ix < CATEGORY_COUNT; ++ix) {
MediaCategory *cat = _data[ix];
NSInteger count = [cat validCount];
NSMutableArray *array = [NSMutableArray new];
for (NSInteger i = 0; i < count; ++i) {
MediaItem *item = [cat objectAtIndex: i];
NSURL *url = [item url];
NSString *s = @"";
if (url)
s = [NSString stringWithCString: [url fileSystemRepresentation] encoding: NSUTF8StringEncoding];
[array addObject: s];
}
[media addObject: array];
}
[bookmark setObject: media forKey: @"media"];
return YES;
}
-(void)willLoadBookmark:(NSDictionary *)bookmark {
_loadingBookmark = YES;
}
-(void)didLoadBookmark:(NSDictionary *)bookmark {
_loadingBookmark = NO;
}
@end
-47
View File
@@ -1,47 +0,0 @@
//
// NewSlotViewController.h
// Ample
//
// Created by Kelvin Sherlock on 9/9/2020.
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
//
#import <Cocoa/Cocoa.h>
NS_ASSUME_NONNULL_BEGIN
@interface NewSlotViewController : NSViewController
@property NSArray *args;
@property NSDictionary *media;
@property NSSize resolution;
@property (nonatomic) NSString *machine;
@end
@interface NewSlotViewController (OutlineView) <NSOutlineViewDelegate, NSOutlineViewDataSource>
@end
@interface SlotTableCellView : NSTableCellView
@property (weak) IBOutlet NSPopUpButton *menuButton;
@end
@interface SlotItem : NSObject
@property unsigned index;
@property NSArray *children;
@property NSArray *menuItems;
@property NSInteger defaultIndex;
@property NSInteger selectedIndex;
-(NSDictionary *)selectedItem;
-(NSDictionary *)selectedMedia;
-(BOOL)hasDefault;
-(void)reset;
@end
NS_ASSUME_NONNULL_END
-537
View File
@@ -1,537 +0,0 @@
//
// NewSlotViewController.m
// Ample
//
// Created by Kelvin Sherlock on 9/9/2020.
// Copyright © 2020 Kelvin Sherlock. All rights reserved.
//
#import "NewSlotViewController.h"
#import "Menu.h"
/* number of slot types. bitmask used so should be < sizeof(unsigned *8) */
#define SLOT_COUNT 21
static_assert(SLOT_COUNT <= sizeof(unsigned) * 8, "too many slot types");
#define SIZEOF(x) (sizeof(x) / sizeof(x[0]))
@implementation SlotTableCellView
@end
@implementation SlotItem
-(id)init {
_defaultIndex = -1;
_selectedIndex = -1;
return self;
}
-(NSString *)label {
static NSString *Names[] = {
@"RAM:",
@"Slot 0:",
@"Slot 1:",
@"Slot 2:",
@"Slot 3:",
@"Slot 4:",
@"Slot 5:",
@"Slot 6:",
@"Slot 7:",
@"Expansion:",
@"Auxiliary:",
@"RS232:",
@"Game I/O:",
@"Modem:",
@"Printer:",
// nubus mac
@"Slot 9:",
@"Slot A:",
@"Slot B:",
@"Slot C:",
@"Slot D:",
@"Slot E:",
};
static_assert(SIZEOF(Names) == SLOT_COUNT, "Missing slot");
return Names[_index];
}
-(NSString *)flag {
static NSString *Names[] = {
@"-ramsize",
@"-sl0",
@"-sl1",
@"-sl2",
@"-sl3",
@"-sl4",
@"-sl5",
@"-sl6",
@"-sl7",
@"-exp",
@"-aux",
@"-rs232",
@"-gameio",
@"-modem",
@"-printer",
// nubus mac
@"-nb9",
@"-nba",
@"-nbb",
@"-nbc",
@"-nbd",
@"-nbe",
};
static_assert(SIZEOF(Names) == SLOT_COUNT, "Missing Slot");
return Names[_index];
}
-(void)buildMenuWithSelectedValue: (NSString *)value {
NSMutableArray *tmp = [NSMutableArray arrayWithCapacity: [_children count]];
_defaultIndex = -1;
_selectedIndex = -1;
int ix = 0;
for (NSDictionary *d in _children) {
NSString *title = [d objectForKey: @"description"];
NSMenuItem *mi = [[NSMenuItem alloc] initWithTitle: title action: NULL keyEquivalent: @""];
// row 0 for slots is -- None -- which should be nil...
[mi setRepresentedObject: d];
BOOL disabled = [(NSNumber *)[d objectForKey: @"disabled"] boolValue];
if (disabled) {
[mi setEnabled: NO];
}
BOOL def = [(NSNumber *)[d objectForKey: @"default"] boolValue];
if (def) {
[mi setAttributedTitle: ItalicMenuString(title)];
_defaultIndex = ix;
}
if (value) {
NSString *v = [d objectForKey: @"value"];
if ([value compare: v] == NSOrderedSame) {
_selectedIndex = ix;
}
}
[tmp addObject: mi];
++ix;
}
[self setMenuItems: tmp];
if (_selectedIndex < 0) _selectedIndex = _defaultIndex;
if (_selectedIndex < 0) _selectedIndex = 0;
}
-(void)reset {
[self setSelectedIndex: _defaultIndex >= 0 ? _defaultIndex : 0];
}
-(NSDictionary *)selectedItem {
if (_selectedIndex < 0) return nil;
return [_children objectAtIndex: _selectedIndex];
}
-(NSDictionary *)selectedMedia {
if (_selectedIndex < 0) return nil;
NSDictionary *d = [_children objectAtIndex: _selectedIndex];
return [d objectForKey: @"media"];
}
-(BOOL)hasDefault {
return _defaultIndex >= 0;
}
-(void)prepareView: (SlotTableCellView *)view {
NSPopUpButton *button = [view menuButton];
NSTextField *text = [view textField];
[text setObjectValue: [self label]];
[button unbind: @"selectedIndex"];
[[button menu] setItemArray: _menuItems];
[button bind: @"selectedIndex" toObject: self withKeyPath: @"selectedIndex" options: nil];
[button setTag: _index];
}
@end
@interface NewSlotViewController ()
@property (weak) IBOutlet NSOutlineView *outlineView;
@end
@implementation NewSlotViewController {
NSMutableArray *_root;
unsigned _slots_explicit;
unsigned _slots_valid;
unsigned _slots_default;
NSDictionary *_slot_object[SLOT_COUNT];
NSDictionary *_slot_media[SLOT_COUNT];
NSString *_slot_value[SLOT_COUNT]; // when explicitely set.
NSDictionary *_machine_media;
NSDictionary *_machine_data;
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
_root = [NSMutableArray new];
}
-(void)resetMachine {
[_root removeAllObjects];
[_outlineView reloadData];
_slots_valid = 0;
_slots_explicit = 0;
_slots_default = 0;
_machine_media = nil;
_machine_data = nil;
for (unsigned i = 0; i < SLOT_COUNT; ++i) {
_slot_media[i] = nil;
_slot_object[i] = nil;
_slot_value[i] = nil;
}
[self setResolution: NSMakeSize(0, 0)];
[self setArgs: @[]];
[self setMedia: @{}];
}
-(void)loadMachine {
static NSString *Keys[] = {
@"ram",
@"sl0", @"sl1", @"sl2", @"sl3",
@"sl4", @"sl5", @"sl6", @"sl7",
@"exp", @"aux", @"rs232",
@"gameio", @"printer", @"modem",
// mac
@"nb9", @"nba", @"nbb", @"nbc", @"nbd", @"nbe",
};
static_assert(SIZEOF(Keys) == SLOT_COUNT, "Missing slot");
static unsigned SizeofKeys = SIZEOF(Keys);
NSBundle *bundle = [NSBundle mainBundle];
NSURL *url= [bundle URLForResource: _machine withExtension: @"plist"];
NSDictionary *d = [NSDictionary dictionaryWithContentsOfURL: url];
if (!d) {
[self resetMachine];
return;
}
NSArray *r = [d objectForKey: @"resolution"];
NSSize res = NSMakeSize(0, 0);
if (r) {
res.width = [(NSNumber *)[r objectAtIndex: 0 /*@"width"*/] doubleValue];
res.height = [(NSNumber *)[r objectAtIndex: 1 /*@"height"*/] doubleValue];
}
[self setResolution: res];
_slots_valid = 0;
//_slots_explicit = 0;
_slots_default = 0;
_machine_media = [d objectForKey: @"media"];
_machine_data = d;
[_root removeAllObjects];
unsigned mask = 1;
for (unsigned i = 0; i < SizeofKeys; ++i, mask <<= 1) {
NSString *v = [_slot_object[i] objectForKey: @"value"];
_slot_media[i] = nil;
_slot_object[i] = nil;
if (v) _slot_value[i] = v;
NSArray *options = [d objectForKey: Keys[i]];
if (!options) continue;
_slots_valid |= mask;
SlotItem *item = [SlotItem new];
[item setIndex: i];
[item setChildren: options];
[item buildMenuWithSelectedValue: _slot_value[i]];
if ([item defaultIndex] >= 0) {
_slots_default |= mask;
}
// default media...
_slot_media[i] = [item selectedMedia];
[_root addObject: item];
}
[_outlineView reloadData];
[self rebuildMedia];
[self rebuildArgs];
}
-(void)setMachine: (NSString *)machine {
if (_machine == machine) return;
if (_machine && machine && [machine compare: _machine] == NSOrderedSame) return;
_machine = machine;
if (!machine) {
[self resetMachine];
return;
}
[self loadMachine];
}
-(void)rebuildMedia {
#define _(var, o) var += [[o objectForKey: @ # var ] unsignedIntValue]
unsigned cass = 0;
unsigned cdrm = 0;
unsigned hard = 0;
unsigned flop_5_25 = 0;
unsigned flop_3_5 = 0;
unsigned pseudo_disk = 0; // mac psuedo disk
#if 0
for (SlotItem *item in _root) {
NSDictionary *tmp = [item selectedMedia];
if (tmp) {
_(cass, tmp);
_(cdrm, tmp);
_(hard, tmp);
_(flop_5_25, tmp);
_(flop_3_5, tmp);
_(pseudo_disk, tmp);
}
}
#endif
#if 1
unsigned mask = 1;
for (unsigned i = 0; i < SLOT_COUNT; ++i, mask <<= 1) {
if (_slots_valid & mask) {
NSDictionary *tmp = _slot_media[i];
if (tmp) {
_(cass, tmp);
_(cdrm, tmp);
_(hard, tmp);
_(flop_5_25, tmp);
_(flop_3_5, tmp);
_(pseudo_disk, tmp);
}
}
}
#endif
NSDictionary *tmp = _machine_media;
if (tmp) {
_(cass, tmp);
_(cdrm, tmp);
_(hard, tmp);
_(flop_5_25, tmp);
_(flop_3_5, tmp);
_(pseudo_disk, tmp);
}
[self setMedia: @{
@"cass": @(cass),
@"cdrm": @(cdrm),
@"hard": @(hard),
@"flop_5_25": @(flop_5_25),
@"flop_3_5": @(flop_3_5),
@"disk": @(pseudo_disk),
}];
}
static NSString *SlotFlagForIndex(unsigned index){
static NSString *Names[] = {
@"-ramsize",
@"-sl0",
@"-sl1",
@"-sl2",
@"-sl3",
@"-sl4",
@"-sl5",
@"-sl6",
@"-sl7",
@"-exp",
@"-aux",
@"-rs232",
@"-gameio",
@"-modem",
@"-printer",
// nubus mac
@"-nb9",
@"-nba",
@"-nbb",
@"-nbc",
@"-nbd",
@"-nbe",
};
static_assert(SIZEOF(Names) == SLOT_COUNT, "Missing slot");
return Names[index];
}
-(void)rebuildArgs {
NSMutableArray *args = [NSMutableArray new];
for (SlotItem *item in _root) {
NSDictionary *d = [item selectedItem];
if ([(NSNumber *)[d objectForKey: @"default"] boolValue]) {
continue; // default, don't include it.
}
NSString *value = [d objectForKey: @"value"];
if (!value || ![value length]) {
if (![item hasDefault]) continue;
value = @"";
}
[args addObject: [item flag]];
[args addObject: value];
}
#if 0
unsigned mask = 1;
for (unsigned i = 0 ; i < SLOT_COUNT; ++i, mask <<= 1) {
if (!(_slots_valid & mask)) continue;
NSDictionary *d = _slot_object[i];
if ([(NSNumber *)[d objectForKey: @"default"] boolValue]) {
continue; // default, don't include it.
}
NSString *value = [d objectForKey: @"value"];
if (!value) {
// if slot has a default, need to overwrite it.
if (!(_slots_default & mask)) continue;
value = @"";
}
[args addObject: SlotFlagForIndex(i)];
[args addObject: value];
}
#endif
[self setArgs: args];
}
- (IBAction)menuChanged:(NSPopUpButton *)sender {
unsigned index = (unsigned)[sender tag];
unsigned mask = 1 << index;
// index 0 = ram = special case...
NSDictionary *d = [[sender selectedItem] representedObject];
_slots_explicit |= mask;
_slot_value[index] = [d objectForKey: @"value"];
//_slots_default &= ~mask;
//_slot_object[index] = d;
// media...
NSDictionary *newMedia = [d objectForKey: @"media"];
NSDictionary *oldMedia = _slot_media[index];
if (newMedia != oldMedia) {
_slot_media[index] = newMedia;
[self rebuildMedia];
}
[self rebuildArgs];
}
-(IBAction)resetSlots:(id)sender {
_slots_explicit = 0;
for (unsigned i = 0; i < SLOT_COUNT; ++i) {
_slot_media[i] = nil;
_slot_object[i] = nil;
_slot_value[i] = nil;
}
for (SlotItem *item in _root) {
[item reset];
// if children, reset them too...
unsigned index = [item index];
_slot_media[index] = [item selectedMedia];
}
//[_outlineView reloadData]; // will need to reload if changing the default makes children disappear.
[self rebuildMedia];
[self rebuildArgs];
}
@end
@implementation NewSlotViewController (OutlineView)
- (NSInteger)outlineView:(NSOutlineView *)outlineView numberOfChildrenOfItem:(id)item {
if (!item) return [_root count];
return 0;
}
- (id)outlineView:(NSOutlineView *)outlineView child:(NSInteger)index ofItem:(id)item {
if (!item) return [_root objectAtIndex: index];
return nil;
}
- (BOOL)outlineView:(NSOutlineView *)outlineView isItemExpandable:(id)item {
return NO;
}
- (NSView *)outlineView:(NSOutlineView *)outlineView viewForTableColumn:(NSTableColumn *)tableColumn item:(SlotItem *)item {
SlotTableCellView *v = [outlineView makeViewWithIdentifier: @"MenuCell" owner: self];
[item prepareView: v];
return v;
}
@end
+4 -2
View File
@@ -176,13 +176,15 @@
const char* args_chmod[] = {"+s", cp, NULL};
// well ... the second command executes a lot more consistently when the (optional) fp is provided and the we fgets the buffer.
// textmate does a wait() to wait for a child to exit. Using the fp (which is popened()?) and reading until EOF
// accomplishes the same thing.
myStatus = AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/usr/sbin/chown", kAuthorizationFlagDefaults, (char**)args_chown, &fp);
fgets(buffer, sizeof(buffer), fp);
while (fgets(buffer, sizeof(buffer), fp));
fclose(fp);
// fprintf(stderr, "myStatus = %d\ndata: %s\n", myStatus, buffer);
myStatus = AuthorizationExecuteWithPrivileges(myAuthorizationRef, "/bin/chmod", kAuthorizationFlagDefaults, (char**)args_chmod, &fp);
fgets(buffer, sizeof(buffer), fp);
while (fgets(buffer, sizeof(buffer), fp));
fclose(fp);
// fprintf(stderr, "myStatus = %d\ndata: %s\n", myStatus, buffer);
+5879 -3599
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+527 -306
View File
@@ -6,19 +6,6 @@
<string>agat7</string>
<key>description</key>
<string>Agat-7</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>32768</integer>
<key>description</key>
<string>32K</string>
<key>value</key>
<string>32K</string>
<key>default</key>
<true/>
</dict>
</array>
<key>media</key>
<dict>
<key>cass</key>
@@ -29,324 +16,558 @@
<integer>512</integer>
<integer>512</integer>
</array>
<key>sl2</key>
<key>slots</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>32768</integer>
<key>description</key>
<string>32K</string>
<key>value</key>
<string>32K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>name</key>
<string>sl2</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>default</key>
<false/>
<string>Slot 2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>devname</key>
<string>agat840k_hle</string>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>devname</key>
<string>agat_fdc</string>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>devname</key>
<string>agat7_flop</string>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<true/>
<key>devname</key>
<string>a7lang</string>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>devname</key>
<string>a7ram</string>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>devname</key>
<string>a7ports</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>name</key>
<string>sl3</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>default</key>
<false/>
<string>Slot 3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>devname</key>
<string>agat840k_hle</string>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>devname</key>
<string>agat_fdc</string>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<true/>
<key>devname</key>
<string>agat7_flop</string>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>devname</key>
<string>a7lang</string>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>devname</key>
<string>a7ram</string>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>devname</key>
<string>a7ports</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>name</key>
<string>sl4</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
<string>Slot 4</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>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>devname</key>
<string>agat840k_hle</string>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>devname</key>
<string>agat_fdc</string>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>devname</key>
<string>agat7_flop</string>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>devname</key>
<string>a7lang</string>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>devname</key>
<string>a7ram</string>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<true/>
<key>devname</key>
<string>a7ports</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>name</key>
<string>sl5</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<true/>
<string>Slot 5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>devname</key>
<string>agat840k_hle</string>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>devname</key>
<string>agat_fdc</string>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>devname</key>
<string>agat7_flop</string>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>devname</key>
<string>a7lang</string>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>devname</key>
<string>a7ram</string>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>devname</key>
<string>a7ports</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>name</key>
<string>sl6</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<false/>
<string>Slot 6</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>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>devname</key>
<string>agat840k_hle</string>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>devname</key>
<string>agat_fdc</string>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>devname</key>
<string>agat7_flop</string>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>devname</key>
<string>a7lang</string>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<true/>
<key>devname</key>
<string>a7ram</string>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>devname</key>
<string>a7ports</string>
</dict>
</array>
</dict>
</array>
<key>sl3</key>
<key>devices</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<key>name</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<false/>
</dict>
</array>
<key>sl4</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:centronics</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>printer</string>
<key>description</key>
<string>Centronics Printer</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>pl80</string>
<key>description</key>
<string>COMX PL-80</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>covox_stereo</string>
<key>description</key>
<string>Covox (Stereo-in-1)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>covox</string>
<key>description</key>
<string>Covox Speech Thing</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>ap2000</string>
<key>description</key>
<string>Epson ActionPrinter 2000</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>ex800</string>
<key>description</key>
<string>Epson EX-800</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>lx800</string>
<key>description</key>
<string>Epson LX-800</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>lx810l</string>
<key>description</key>
<string>Espon LX-810L</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>p72</string>
<key>description</key>
<string>NEC PinWriter P72</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>samdac</string>
<key>description</key>
<string>SAMDAC</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>chessmec</string>
<key>description</key>
<string>Tasc ChessMachine EC Interface</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>smartboard</string>
<key>description</key>
<string>Tasc SmartBoard SB30 Interface</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<true/>
</dict>
</array>
<key>sl5</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<false/>
</dict>
</array>
<key>sl6</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdchle</string>
<key>description</key>
<string>Agat 840K floppy card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a9fdc</string>
<key>description</key>
<string>Agat 840K floppy controller card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7fdc</string>
<key>description</key>
<string>Agat-7 140K floppy card</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>a7lang</string>
<key>description</key>
<string>Agat-7 32K Language Card</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>a7ram</string>
<key>description</key>
<string>Agat-7 32K RAM Card</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>a7ports</string>
<key>description</key>
<string>Agat-7 Ports Card</string>
<key>default</key>
<false/>
<key>name</key>
<string>agat_fdc</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>525dsqd</string>
<key>description</key>
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>525dsqd</string>
<key>description</key>
<string>5.25" quad density floppy drive</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+254 -150
View File
@@ -6,129 +6,6 @@
<string>apple1</string>
<key>description</key>
<string>Apple I</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>4096</integer>
<key>description</key>
<string>4K</string>
<key>value</key>
<string>4K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8192</integer>
<key>description</key>
<string>8K</string>
<key>value</key>
<string>8K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>12288</integer>
<key>description</key>
<string>12K</string>
<key>value</key>
<string>12K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16384</integer>
<key>description</key>
<string>16K</string>
<key>value</key>
<string>16K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>20480</integer>
<key>description</key>
<string>20K</string>
<key>value</key>
<string>20K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>24576</integer>
<key>description</key>
<string>24K</string>
<key>value</key>
<string>24K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>28672</integer>
<key>description</key>
<string>28K</string>
<key>value</key>
<string>28K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>32768</integer>
<key>description</key>
<string>32K</string>
<key>value</key>
<string>32K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>36864</integer>
<key>description</key>
<string>36K</string>
<key>value</key>
<string>36K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>40960</integer>
<key>description</key>
<string>40K</string>
<key>value</key>
<string>40K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>45056</integer>
<key>description</key>
<string>44K</string>
<key>value</key>
<string>44K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>49152</integer>
<key>description</key>
<string>48K</string>
<key>value</key>
<string>48K</string>
<key>default</key>
<true/>
</dict>
</array>
<key>media</key>
<dict>
</dict>
@@ -137,41 +14,268 @@
<integer>560</integer>
<integer>384</integer>
</array>
<key>exp</key>
<key>slots</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>4096</integer>
<key>description</key>
<string>4K</string>
<key>value</key>
<string>4K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8192</integer>
<key>description</key>
<string>8K</string>
<key>value</key>
<string>8K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>12288</integer>
<key>description</key>
<string>12K</string>
<key>value</key>
<string>12K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16384</integer>
<key>description</key>
<string>16K</string>
<key>value</key>
<string>16K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>20480</integer>
<key>description</key>
<string>20K</string>
<key>value</key>
<string>20K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>24576</integer>
<key>description</key>
<string>24K</string>
<key>value</key>
<string>24K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>28672</integer>
<key>description</key>
<string>28K</string>
<key>value</key>
<string>28K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>32768</integer>
<key>description</key>
<string>32K</string>
<key>value</key>
<string>32K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>36864</integer>
<key>description</key>
<string>36K</string>
<key>value</key>
<string>36K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>40960</integer>
<key>description</key>
<string>40K</string>
<key>value</key>
<string>40K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>45056</integer>
<key>description</key>
<string>44K</string>
<key>value</key>
<string>44K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>49152</integer>
<key>description</key>
<string>48K</string>
<key>value</key>
<string>48K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>cassette</string>
<key>name</key>
<string>exp</string>
<key>description</key>
<string>Apple I cassette board</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cass</key>
<integer>1</integer>
</dict>
<string>Expansion</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>cassette</string>
<key>description</key>
<string>Apple I cassette board</string>
<key>default</key>
<true/>
<key>devname</key>
<string>a1cass</string>
<key>media</key>
<dict>
<key>cass</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>cffa</string>
<key>description</key>
<string>CFFA Compact Flash for Apple I</string>
<key>devname</key>
<string>cffa1</string>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>value</key>
<string>cffa</string>
<key>description</key>
<string>CFFA Compact Flash for Apple I</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
<key>name</key>
<string>cffa1</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:cffa_ata: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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>hdd</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>:cffa_ata:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>hdd</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
+5879 -3599
View File
File diff suppressed because it is too large Load Diff
+450 -233
View File
@@ -6,274 +6,491 @@
<string>apple2c</string>
<key>description</key>
<string>Apple //c</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_5_25</key>
<integer>2</integer>
</dict>
<key>resolution</key>
<array>
<integer>560</integer>
<integer>384</integer>
</array>
<key>gameio</key>
<key>slots</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>default</key>
<false/>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>name</key>
<string>gameio</string>
<key>description</key>
<string>Apple II paddles</string>
<key>default</key>
<false/>
<string>Game I/O</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>devname</key>
<string>a2joy</string>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>description</key>
<string>Apple II paddles</string>
<key>devname</key>
<string>a2pdls</string>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>devname</key>
<string>a2ceyes</string>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>devname</key>
<string>a2gizmo</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>default</key>
<false/>
</dict>
</array>
<key>printer</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<key>name</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
<string>Printer</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>name</key>
<string>modem</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<string>Modem</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
</array>
<key>modem</key>
<key>devices</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>sl6:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>525</string>
<key>description</key>
<string>5.25"</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>sl6:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>525</string>
<key>description</key>
<string>5.25"</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_5_25</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<key>name</key>
<string>sunkbd_adaptor</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:keyboard</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>type3hle</string>
<key>description</key>
<string>Sun Type 3 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type4hle</string>
<key>description</key>
<string>Sun Type 4 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5gbhle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Great Britain - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5jphle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Japan - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5sehle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Sweden - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5hle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (U.S.A. - HLE)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>apple2_flop_clcracked.xml</string>
<string>apple2_flop_orig.xml</string>
<dict>
<key>name</key>
<string>apple2_flop_orig.xml</string>
<key>filter</key>
<string>A2C</string>
</dict>
<string>apple2_flop_misc.xml</string>
</array>
</dict>
+415 -278
View File
@@ -6,64 +6,11 @@
<string>apple2cp</string>
<key>description</key>
<string>Apple //c Plus</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>393216</integer>
<key>description</key>
<string>384K</string>
<key>value</key>
<string>384K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>655360</integer>
<key>description</key>
<string>640K</string>
<key>value</key>
<string>640K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>917504</integer>
<key>description</key>
<string>896K</string>
<key>value</key>
<string>896K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>1179648</integer>
<key>description</key>
<string>1152K</string>
<key>value</key>
<string>1152K</string>
<key>default</key>
<false/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_5_25</key>
<key>floppy_5_25</key>
<integer>2</integer>
<key>flop_3_5</key>
<key>floppy_3_5</key>
<integer>2</integer>
</dict>
<key>resolution</key>
@@ -71,251 +18,441 @@
<integer>560</integer>
<integer>384</integer>
</array>
<key>gameio</key>
<key>slots</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>393216</integer>
<key>description</key>
<string>384K</string>
<key>value</key>
<string>384K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>655360</integer>
<key>description</key>
<string>640K</string>
<key>value</key>
<string>640K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>917504</integer>
<key>description</key>
<string>896K</string>
<key>value</key>
<string>896K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>1179648</integer>
<key>description</key>
<string>1152K</string>
<key>value</key>
<string>1152K</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>name</key>
<string>gameio</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>default</key>
<false/>
<string>Game I/O</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>devname</key>
<string>a2joy</string>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>description</key>
<string>Apple II paddles</string>
<key>devname</key>
<string>a2pdls</string>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>devname</key>
<string>a2ceyes</string>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>devname</key>
<string>a2gizmo</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>description</key>
<string>Apple II paddles</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>default</key>
<false/>
</dict>
</array>
<key>printer</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<key>name</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
<string>Printer</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>name</key>
<string>modem</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<string>Modem</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
</array>
<key>modem</key>
<key>devices</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<key>name</key>
<string>sunkbd_adaptor</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:keyboard</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>type3hle</string>
<key>description</key>
<string>Sun Type 3 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type4hle</string>
<key>description</key>
<string>Sun Type 4 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5gbhle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Great Britain - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5jphle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Japan - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5sehle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Sweden - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5hle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (U.S.A. - HLE)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>apple2_flop_clcracked.xml</string>
<string>apple2_flop_orig.xml</string>
<dict>
<key>name</key>
<string>apple2_flop_orig.xml</string>
<key>filter</key>
<string>A2C</string>
</dict>
<string>apple2_flop_misc.xml</string>
</array>
</dict>
+7587 -4010
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+1070 -382
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6512 -2823
View File
File diff suppressed because it is too large Load Diff
+6512 -2823
View File
File diff suppressed because it is too large Load Diff
+6512 -2823
View File
File diff suppressed because it is too large Load Diff
+6512 -2823
View File
File diff suppressed because it is too large Load Diff
+6512 -2823
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+414 -277
View File
@@ -6,62 +6,9 @@
<string>las128e2</string>
<key>description</key>
<string>Laser 128ex2 (version 6.1)</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>393216</integer>
<key>description</key>
<string>384K</string>
<key>value</key>
<string>384K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>655360</integer>
<key>description</key>
<string>640K</string>
<key>value</key>
<string>640K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>917504</integer>
<key>description</key>
<string>896K</string>
<key>value</key>
<string>896K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>1179648</integer>
<key>description</key>
<string>1152K</string>
<key>value</key>
<string>1152K</string>
<key>default</key>
<false/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_5_25</key>
<key>floppy_5_25</key>
<integer>2</integer>
</dict>
<key>resolution</key>
@@ -69,251 +16,441 @@
<integer>560</integer>
<integer>384</integer>
</array>
<key>gameio</key>
<key>slots</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>393216</integer>
<key>description</key>
<string>384K</string>
<key>value</key>
<string>384K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>655360</integer>
<key>description</key>
<string>640K</string>
<key>value</key>
<string>640K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>917504</integer>
<key>description</key>
<string>896K</string>
<key>value</key>
<string>896K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>1179648</integer>
<key>description</key>
<string>1152K</string>
<key>value</key>
<string>1152K</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>name</key>
<string>gameio</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>default</key>
<false/>
<string>Game I/O</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>joy</string>
<key>description</key>
<string>Apple II analog joysticks</string>
<key>devname</key>
<string>a2joy</string>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>description</key>
<string>Apple II paddles</string>
<key>devname</key>
<string>a2pdls</string>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>devname</key>
<string>a2ceyes</string>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>devname</key>
<string>a2gizmo</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>paddles</string>
<key>description</key>
<string>Apple II paddles</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>compeyes</string>
<key>description</key>
<string>Digital Vision ComputerEyes</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>gizmo</string>
<key>description</key>
<string>HAL Labs Gizmo</string>
<key>default</key>
<false/>
</dict>
</array>
<key>printer</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<key>name</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
<string>Printer</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>name</key>
<string>modem</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<string>Modem</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>devname</key>
<string>ie15_terminal</string>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>devname</key>
<string>pseudo_terminal</string>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>devname</key>
<string>rs_serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>devname</key>
<string>rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>devname</key>
<string>dec_rs232_loopback</string>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>devname</key>
<string>null_modem</string>
</dict>
<dict>
<key>value</key>
<string>rs232_sync_io</string>
<key>description</key>
<string>RS232 Synchronous I/O</string>
<key>devname</key>
<string>rs232_sync_io</string>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>devname</key>
<string>serial_keyboard</string>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>devname</key>
<string>serial_printer</string>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>devname</key>
<string>serial_terminal</string>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>devname</key>
<string>sunkbd_adaptor</string>
</dict>
<dict>
<key>value</key>
<string>mockingboard</string>
<key>description</key>
<string>Sweet Micro Systems Mockingboard D</string>
<key>devname</key>
<string>mockingboardd</string>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>devname</key>
<string>swtpc8212_terminal</string>
</dict>
</array>
</dict>
</array>
<key>modem</key>
<key>devices</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>ie15</string>
<key>description</key>
<string>IE15 Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pty</string>
<key>description</key>
<string>Pseudo terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>rs_printer</string>
<key>description</key>
<string>Radio Shack Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>loopback</string>
<key>description</key>
<string>RS232 Loopback</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>dec_loopback</string>
<key>description</key>
<string>RS232 Loopback (DEC 12-15336-00)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>null_modem</string>
<key>description</key>
<string>RS232 Null Modem</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>keyboard</string>
<key>description</key>
<string>Serial Keyboard</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>printer</string>
<key>description</key>
<string>Serial Printer</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>terminal</string>
<key>description</key>
<string>Serial Terminal</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>sunkbd</string>
<key>description</key>
<string>Sun Keyboard Adaptor</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>swtpc8212</string>
<key>description</key>
<string>SWTPC8212 Terminal</string>
<key>default</key>
<false/>
<key>name</key>
<string>sunkbd_adaptor</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:keyboard</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>type3hle</string>
<key>description</key>
<string>Sun Type 3 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type4hle</string>
<key>description</key>
<string>Sun Type 4 Keyboard (HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5gbhle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Great Britain - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5jphle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Japan - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5sehle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (Sweden - HLE)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>type5hle</string>
<key>description</key>
<string>Sun Type 5 Keyboard (U.S.A. - HLE)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>apple2_flop_clcracked.xml</string>
<string>apple2_flop_orig.xml</string>
<dict>
<key>name</key>
<string>apple2_flop_orig.xml</string>
<key>filter</key>
<string>A2C</string>
</dict>
<string>apple2_flop_misc.xml</string>
</array>
</dict>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+370
View File
@@ -0,0 +1,370 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>mac128k</string>
<key>description</key>
<string>Macintosh 128k</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>131072</integer>
<key>description</key>
<string>128K</string>
<key>value</key>
<string>128K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<true/>
<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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120p</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
File diff suppressed because it is too large Load Diff
+370
View File
@@ -0,0 +1,370 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>mac512k</string>
<key>description</key>
<string>Macintosh 512k</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>524288</integer>
<key>description</key>
<string>512K</string>
<key>value</key>
<string>512K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<true/>
<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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120p</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
+370
View File
@@ -0,0 +1,370 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>mac512ke</string>
<key>description</key>
<string>Macintosh 512ke</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>524288</integer>
<key>description</key>
<string>512K</string>
<key>value</key>
<string>512K</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>35dd</string>
<key>description</key>
<string>3.5" DD</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>fdc: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>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120p</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
+509
View File
@@ -0,0 +1,509 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macclas2</string>
<key>description</key>
<string>Macintosh Classic II</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>6291456</integer>
<key>description</key>
<string>6M</string>
<key>value</key>
<string>6M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>10485760</integer>
<key>description</key>
<string>10M</string>
<key>value</key>
<string>10M</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
<string>mac_flop.xml</string>
</array>
</dict>
</plist>
+489
View File
@@ -0,0 +1,489 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macclasc</string>
<key>description</key>
<string>Macintosh Classic</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>2621440</integer>
<key>description</key>
<string>2560K</string>
<key>value</key>
<string>2560K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<dict>
<key>name</key>
<string>scsibus:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:4</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+539
View File
@@ -0,0 +1,539 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>maciisi</string>
<key>description</key>
<string>Macintosh IIsi</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>640</integer>
<integer>480</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16777216</integer>
<key>description</key>
<string>16M</string>
<key>value</key>
<string>16M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>33554432</integer>
<key>description</key>
<string>32M</string>
<key>value</key>
<string>32M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>50331648</integer>
<key>description</key>
<string>48M</string>
<key>value</key>
<string>48M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>67108864</integer>
<key>description</key>
<string>64M</string>
<key>value</key>
<string>64M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>134217728</integer>
<key>description</key>
<string>128M</string>
<key>value</key>
<string>128M</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
<string>mac_flop.xml</string>
</array>
</dict>
</plist>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+486 -57
View File
@@ -6,71 +6,500 @@
<string>maclc</string>
<key>description</key>
<string>Macintosh LC</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>6291456</integer>
<key>description</key>
<string>6M</string>
<key>value</key>
<string>6M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>10485760</integer>
<key>description</key>
<string>10M</string>
<key>value</key>
<string>10M</string>
<key>default</key>
<false/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_3_5</key>
<integer>2</integer>
<key>hard</key>
<integer>2</integer>
</dict>
<key>resolution</key>
<array>
<integer>640</integer>
<integer>480</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>6291456</integer>
<key>description</key>
<string>6M</string>
<key>value</key>
<string>6M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>10485760</integer>
<key>description</key>
<string>10M</string>
<key>value</key>
<string>10M</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
+476 -47
View File
@@ -6,61 +6,490 @@
<string>maclc2</string>
<key>description</key>
<string>Macintosh LC II</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>6291456</integer>
<key>description</key>
<string>6M</string>
<key>value</key>
<string>6M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>10485760</integer>
<key>description</key>
<string>10M</string>
<key>value</key>
<string>10M</string>
<key>default</key>
<false/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_3_5</key>
<integer>2</integer>
<key>hard</key>
<integer>2</integer>
</dict>
<key>resolution</key>
<array>
<integer>640</integer>
<integer>480</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>6291456</integer>
<key>description</key>
<string>6M</string>
<key>value</key>
<string>6M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>10485760</integer>
<key>description</key>
<string>10M</string>
<key>value</key>
<string>10M</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
+506 -77
View File
@@ -6,91 +6,520 @@
<string>maclc3</string>
<key>description</key>
<string>Macintosh LC III</string>
<key>ram</key>
<array>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16777216</integer>
<key>description</key>
<string>16M</string>
<key>value</key>
<string>16M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>33554432</integer>
<key>description</key>
<string>32M</string>
<key>value</key>
<string>32M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>50331648</integer>
<key>description</key>
<string>48M</string>
<key>value</key>
<string>48M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>67108864</integer>
<key>description</key>
<string>64M</string>
<key>value</key>
<string>64M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>83886080</integer>
<key>description</key>
<string>80M</string>
<key>value</key>
<string>80M</string>
<key>default</key>
<false/>
</dict>
</array>
<key>media</key>
<dict>
<key>flop_3_5</key>
<integer>2</integer>
<key>hard</key>
<integer>2</integer>
</dict>
<key>resolution</key>
<array>
<integer>640</integer>
<integer>480</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16777216</integer>
<key>description</key>
<string>16M</string>
<key>value</key>
<string>16M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>33554432</integer>
<key>description</key>
<string>32M</string>
<key>value</key>
<string>32M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>50331648</integer>
<key>description</key>
<string>48M</string>
<key>value</key>
<string>48M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>67108864</integer>
<key>description</key>
<string>64M</string>
<key>value</key>
<string>64M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>83886080</integer>
<key>description</key>
<string>80M</string>
<key>value</key>
<string>80M</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
+687
View File
@@ -0,0 +1,687 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macplus</string>
<key>description</key>
<string>Macintosh Plus</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>1048576</integer>
<key>description</key>
<string>1M</string>
<key>value</key>
<string>1M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>2621440</integer>
<key>description</key>
<string>2560K</string>
<key>value</key>
<string>2560K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>35dd</string>
<key>description</key>
<string>3.5" DD</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>fdc: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>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:4</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>mackbd_m0120p</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>:kbd</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>gb</string>
<key>description</key>
<string>Macintosh Keyboard (British - M0110B)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>fr</string>
<key>description</key>
<string>Macintosh Keyboard (French - M0110F)</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>it</string>
<key>description</key>
<string>Macintosh Keyboard (Italian - M0110T)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>us</string>
<key>description</key>
<string>Macintosh Keyboard (U.S. - M0110)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>pad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (English - M0120)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>eupad</string>
<key>description</key>
<string>Macintosh Numeric Keypad (European - M0120P)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>frp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (French - M0110A F)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>jpp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (Japanese - M0110A J)</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>usp</string>
<key>description</key>
<string>Macintosh Plus Keyboard (U.S. - M0110A)</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
+489
View File
@@ -0,0 +1,489 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macse</string>
<key>description</key>
<string>Macintosh SE</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>2621440</integer>
<key>description</key>
<string>2560K</string>
<key>value</key>
<string>2560K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>35dd</string>
<key>description</key>
<string>3.5" DD</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>fdc: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>
<true/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35hd</string>
<key>description</key>
<string>3.5" HD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:4</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
+539
View File
@@ -0,0 +1,539 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macse30</string>
<key>description</key>
<string>Macintosh SE/30</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>intValue</key>
<integer>8388608</integer>
<key>description</key>
<string>8M</string>
<key>value</key>
<string>8M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>16777216</integer>
<key>description</key>
<string>16M</string>
<key>value</key>
<string>16M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>33554432</integer>
<key>description</key>
<string>32M</string>
<key>value</key>
<string>32M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>50331648</integer>
<key>description</key>
<string>48M</string>
<key>value</key>
<string>48M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>67108864</integer>
<key>description</key>
<string>64M</string>
<key>value</key>
<string>64M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>100663296</integer>
<key>description</key>
<string>96M</string>
<key>value</key>
<string>96M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>134217728</integer>
<key>description</key>
<string>128M</string>
<key>value</key>
<string>128M</string>
<key>default</key>
<false/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<true/>
</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>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>35sd</string>
<key>description</key>
<string>3.5" SD</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>floppy_3_5</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:4</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsi:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_hdd.xml</string>
<string>mac_flop.xml</string>
</array>
</dict>
</plist>
+489
View File
@@ -0,0 +1,489 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>value</key>
<string>macsefd</string>
<key>description</key>
<string>Macintosh SE (FDHD)</string>
<key>media</key>
<dict>
</dict>
<key>resolution</key>
<array>
<integer>512</integer>
<integer>342</integer>
</array>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>ramsize</string>
<key>description</key>
<string>RAM</string>
<key>options</key>
<array>
<dict>
<key>intValue</key>
<integer>2097152</integer>
<key>description</key>
<string>2M</string>
<key>value</key>
<string>2M</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>2621440</integer>
<key>description</key>
<string>2560K</string>
<key>value</key>
<string>2560K</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>intValue</key>
<integer>4194304</integer>
<key>description</key>
<string>4M</string>
<key>value</key>
<string>4M</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>smartport</string>
<key>description</key>
<string>Disk Drives</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string></string>
<key>devname</key>
<string>smartport</string>
<key>default</key>
<true/>
</dict>
</array>
</dict>
</array>
<key>devices</key>
<array>
<dict>
<key>name</key>
<string>smartport</string>
<key>slots</key>
<array>
<dict>
<key>name</key>
<string>fdc:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<false/>
</dict>
<dict>
<key>value</key>
<string>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>
<dict>
<key>name</key>
<string>scsibus:0</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:1</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:2</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:3</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:4</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:5</string>
<key>options</key>
<array>
<dict>
<key>value</key>
<string></string>
<key>description</key>
<string>—None—</string>
<key>default</key>
<true/>
</dict>
<dict>
<key>value</key>
<string>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
<dict>
<key>name</key>
<string>scsibus:6</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>cdrom</string>
<key>description</key>
<string>CD-ROM</string>
<key>default</key>
<false/>
<key>media</key>
<dict>
<key>cdrom</key>
<integer>1</integer>
</dict>
</dict>
<dict>
<key>value</key>
<string>harddisk</string>
<key>description</key>
<string>Hard Disk</string>
<key>default</key>
<true/>
<key>media</key>
<dict>
<key>hard</key>
<integer>1</integer>
</dict>
</dict>
</array>
</dict>
</array>
</dict>
</array>
<key>software</key>
<array>
<string>mac_flop.xml</string>
<string>mac_hdd.xml</string>
</array>
</dict>
</plist>
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+131 -8
View File
@@ -151,6 +151,12 @@
<key>value</key>
<string>ace100</string>
</dict>
<dict>
<key>description</key>
<string>Franklin ACE 1000</string>
<key>value</key>
<string>ace1000</string>
</dict>
<dict>
<key>description</key>
<string>Albert</string>
@@ -278,6 +284,12 @@
<key>value</key>
<string>spectred</string>
</dict>
<dict>
<key>description</key>
<string>TK3000//e</string>
<key>value</key>
<string>tk3000</string>
</dict>
<dict>
<key>description</key>
<string>Zi Jin I</string>
@@ -379,11 +391,128 @@
</dict>
<dict>
<key>description</key>
<string>Macintosh (NuBus)</string>
<string>Macintosh (Compact)</string>
<key>value</key>
<string>maclc</string>
<string>macse30</string>
<key>children</key>
<array>
<dict>
<key>description</key>
<string>Macintosh 128k</string>
<key>value</key>
<string>mac128k</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh 512k</string>
<key>value</key>
<string>mac512k</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh 512ke</string>
<key>value</key>
<string>mac512ke</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh Plus</string>
<key>value</key>
<string>macplus</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh SE</string>
<key>value</key>
<string>macse</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh SE (FDHD)</string>
<key>value</key>
<string>macsefd</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh SE/30</string>
<key>value</key>
<string>macse30</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh Classic</string>
<key>value</key>
<string>macclasc</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh Classic II</string>
<key>value</key>
<string>macclas2</string>
</dict>
</array>
</dict>
<dict>
<key>description</key>
<string>Macintosh (NuBus)</string>
<key>value</key>
<string>maciix</string>
<key>children</key>
<array>
<dict>
<key>description</key>
<string>Macintosh II</string>
<key>value</key>
<string>macii</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh II (w/o 68851 MMU)</string>
<key>value</key>
<string>maciihmu</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh II (FDHD)</string>
<key>value</key>
<string>mac2fdhd</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIx</string>
<key>value</key>
<string>maciix</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIcx</string>
<key>value</key>
<string>maciicx</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIci</string>
<key>value</key>
<string>maciici</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIsi</string>
<key>value</key>
<string>maciisi</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIvx</string>
<key>value</key>
<string>maciivx</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIvi</string>
<key>value</key>
<string>maciivi</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh LC</string>
@@ -402,12 +531,6 @@
<key>value</key>
<string>maclc3</string>
</dict>
<dict>
<key>description</key>
<string>Macintosh IIci</string>
<key>value</key>
<string>maciici</string>
</dict>
</array>
</dict>
</array>
+7587 -4010
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff
+7587 -4010
View File
File diff suppressed because it is too large Load Diff
+5819 -3539
View File
File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More