OK, except for the above (which appears on stdout but has no other noticeable effect), I think I have a working id51.py. Further, it looks like the the modulation modes change I made, can be *trivially* retrofitted into id31.py. After that, a simple diff will show no more than a dozen lines changed (aside from ID31/ID51 names).
Cool.
There are a couple of differences in a couple structures, although I wouldn't be surprised if the one in id31py is wrong. Eg, the mycall table I found in memory had both callsigns and tags. I wonder if the id31.py structure shouldn't have them as well???
Sure, I can take a look when I see your change.
Shoot me someone's reasonable .ICF file for the ID-31 and I'll check (I have Icom's CS-31 software to see what is actually there and/or I'll add tags).
I don't have a reasonable one (or an .icf for that matter) but there should be a test image you can use in tests/images/Icom_ID-31A.img. Probably doesn't have much/any D-STAR stuff in there though, if that's what you're looking for. You should be able to download CS-31 and make ICF files to test what you want, right?
ps: Now if someone can give me some hints as to how to add support for banks "B" thru "E" on the IC-7000, I will be really happy (# 551)
The CIV drivers are a bit messy, but it shouldn't be that hard. I'd guess one of the zero bytes is the bank number, so I'd just start incrementing them one at a time until you get back a B-bank memory :)