diff --git a/Ample/Resources/agat7.plist b/Ample/Resources/agat7.plist
index a8eea7d..7e35f89 100644
--- a/Ample/Resources/agat7.plist
+++ b/Ample/Resources/agat7.plist
@@ -19,8 +19,6 @@
media
- flop_5_25
- 2
cass
1
diff --git a/Ample/Resources/agat9.plist b/Ample/Resources/agat9.plist
index eb71f89..8f46904 100644
--- a/Ample/Resources/agat9.plist
+++ b/Ample/Resources/agat9.plist
@@ -19,8 +19,6 @@
media
- flop_5_25
- 2
cass
1
diff --git a/Ample/Resources/apple1.plist b/Ample/Resources/apple1.plist
index d35548a..8de0f83 100644
--- a/Ample/Resources/apple1.plist
+++ b/Ample/Resources/apple1.plist
@@ -107,8 +107,6 @@
media
- cass
- 1
resolution
diff --git a/Ample/Resources/apple3.plist b/Ample/Resources/apple3.plist
index d4bd7d0..07dcabf 100644
--- a/Ample/Resources/apple3.plist
+++ b/Ample/Resources/apple3.plist
@@ -35,6 +35,8 @@
media
+ flop_5_25
+ 4
resolution
diff --git a/python/mkmachines.py b/python/mkmachines.py
index 1c8d608..8cf0c39 100644
--- a/python/mkmachines.py
+++ b/python/mkmachines.py
@@ -19,7 +19,40 @@ DISABLED = set((
'vulcangold',
'vulcaniie',
))
-
+
+
+def find_machine_media(parent):
+ # look for relevant device nodes. If the tag contains a slot, skip since it's
+ # not built in. Except the Apple3, where the floppy drives are actually slots 0/1/2/3/4
+ #
+ # apple1 has a "snapshot" device. not currently supported.
+
+ # no machines have built-in hard drives.
+ remap = {
+ "cassette": "cass",
+ "apple1_cass": "cass",
+ "apple2_cass": "cass",
+ "floppy_5_25": "flop_5_25",
+ "floppy_3_5": "flop_3_5",
+ }
+ media = {}
+ for x in parent.findall("./device"):
+ tag = x.get("tag")
+ typ = x.get("type")
+ intf = x.get("interface")
+ if intf == None: intf = typ # cassette has no interface.
+
+ # print(" ",intf)
+ # skip slot devices -- they'll be handled as part of the device.
+ if ":" in tag and tag[0] not in "0123456789": continue
+
+ if intf in remap:
+ name = remap[intf]
+ media[name] = media.get(name, 0) + 1
+
+ return media
+
+
def find_media(parent, include_slots=False):
@@ -123,7 +156,7 @@ for m in MACHINES:
data["ram"] = tmp
- data["media"] = find_media(machine)
+ data["media"] = find_machine_media(machine)
# node = machine.find('display[@tag="screen"]')