Эх сурвалжийг харах

Acorn image types ADS ADM ADL

Keir Fraser 3 жил өмнө
parent
commit
b181fd3153

+ 13 - 1
scripts/greaseweazle/image/dsd.py → scripts/greaseweazle/image/acorn.py

@@ -1,4 +1,4 @@
-# greaseweazle/image/dsd.py
+# greaseweazle/image/acorn.py
 #
 # Written & released by Keir Fraser <keir.xen@gmail.com>
 #
@@ -7,9 +7,21 @@
 
 from greaseweazle.image.img import IMG
 
+class SSD(IMG):
+    default_format = 'acorn.dfs.ss'
+
 class DSD(IMG):
     default_format = 'acorn.dfs.ds'
 
+class ADS(IMG):
+    default_format = 'acorn.adfs.160'
+    
+class ADM(IMG):
+    default_format = 'acorn.adfs.320'
+    
+class ADL(IMG):
+    default_format = 'acorn.adfs.640'
+
 # Local variables:
 # python-indent: 4
 # End:

+ 0 - 15
scripts/greaseweazle/image/ssd.py

@@ -1,15 +0,0 @@
-# greaseweazle/image/ssd.py
-#
-# Written & released by Keir Fraser <keir.xen@gmail.com>
-#
-# This is free and unencumbered software released into the public domain.
-# See the file COPYING for more details, or visit <http://unlicense.org>.
-
-from greaseweazle.image.img import IMG
-
-class SSD(IMG):
-    default_format = 'acorn.dfs.ss'
-
-# Local variables:
-# python-indent: 4
-# End:

+ 25 - 15
scripts/greaseweazle/tools/util.py

@@ -10,6 +10,7 @@
 import argparse, os, sys, serial, struct, time, re, platform
 import importlib
 import serial.tools.list_ports
+from collections import OrderedDict
 
 from greaseweazle import version
 from greaseweazle import error
@@ -158,21 +159,26 @@ def split_opts(seq):
     return name, opts
 
 
+image_types = OrderedDict(
+    { '.adf': 'ADF',
+      '.ads': ('ADS','acorn'),
+      '.adm': ('ADM','acorn'),
+      '.adl': ('ADL','acorn'),
+      '.d81': 'D81',
+      '.dsd': ('DSD','acorn'),
+      '.dsk': 'EDSK',
+      '.hfe': 'HFE',
+      '.ima': 'IMG',
+      '.img': 'IMG',
+      '.ipf': 'IPF',
+      '.raw': 'KryoFlux',
+      '.scp': 'SCP',
+      '.ssd': ('SSD','acorn'),
+      '.st' : 'IMG' })
+
 def get_image_class(name):
-    image_types = { '.adf': 'ADF',
-                    '.d81': 'D81',
-                    '.dsd': 'DSD',
-                    '.dsk': 'EDSK',
-                    '.hfe': 'HFE',
-                    '.ima': 'IMG',
-                    '.img': 'IMG',
-                    '.ipf': 'IPF',
-                    '.raw': 'KryoFlux',
-                    '.scp': 'SCP',
-                    '.ssd': 'SSD',
-                    '.st' : 'IMG' }
     if os.path.isdir(name):
-        typename = 'KryoFlux'
+        typespec = 'KryoFlux'
     else:
         _, ext = os.path.splitext(name)
         error.check(ext.lower() in image_types,
@@ -180,8 +186,12 @@ def get_image_class(name):
 %s: Unrecognised file suffix '%s'
 Known suffixes: %s"""
                     % (name, ext, ', '.join(image_types)))
-        typename = image_types[ext.lower()]
-    mod = importlib.import_module('greaseweazle.image.' + typename.lower())
+        typespec = image_types[ext.lower()]
+    if isinstance(typespec, tuple):
+        typename, classname = typespec
+    else:
+        typename, classname = typespec, typespec.lower()
+    mod = importlib.import_module('greaseweazle.image.' + classname)
     return mod.__dict__[typename]