|
@@ -1,17 +1,17 @@
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
@@ -24,14 +24,14 @@ import re, struct, sys
|
|
|
|
|
|
from greaseweazle import version
|
|
|
|
|
|
-def mk_cat_entry(dat, hw_type, sig):
|
|
|
+def mk_cat_entry(dat, hw_model, sig):
|
|
|
max_kb = { 1: { b'BL': 8, b'GW': 56 },
|
|
|
7: { b'BL': 16, b'GW': 48 } }
|
|
|
dlen = len(dat)
|
|
|
assert (dlen & 3) == 0, "input is not longword padded"
|
|
|
- assert dlen <= max_kb[hw_type][sig]*1024, "input is too long"
|
|
|
- header = struct.pack("<2H", dlen + 8, hw_type)
|
|
|
- footer = struct.pack("<2s2BH", sig, version.major, version.minor, hw_type)
|
|
|
+ assert dlen <= max_kb[hw_model][sig]*1024, "input is too long"
|
|
|
+ header = struct.pack("<2H", dlen + 8, hw_model)
|
|
|
+ footer = struct.pack("<2s2BH", sig, version.major, version.minor, hw_model)
|
|
|
crc16 = crcmod.predefined.Crc('crc-ccitt-false')
|
|
|
crc16.update(dat)
|
|
|
crc16.update(footer)
|
|
@@ -40,11 +40,11 @@ def mk_cat_entry(dat, hw_type, sig):
|
|
|
|
|
|
def main(argv):
|
|
|
out_f = open(argv[3], "wb")
|
|
|
- hw_type = int(re.match("f(\d)", argv[4]).group(1))
|
|
|
+ hw_model = int(re.match("f(\d)", argv[4]).group(1))
|
|
|
with open(argv[2], "rb") as gw_f:
|
|
|
- out_f.write(mk_cat_entry(gw_f.read(), hw_type, b'GW'))
|
|
|
+ out_f.write(mk_cat_entry(gw_f.read(), hw_model, b'GW'))
|
|
|
with open(argv[1], "rb") as bl_f:
|
|
|
- out_f.write(mk_cat_entry(bl_f.read(), hw_type, b'BL'))
|
|
|
+ out_f.write(mk_cat_entry(bl_f.read(), hw_model, b'BL'))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
main(sys.argv)
|