Hi everyone,
I have found the location of the start of the memories (0x17c5) and the size of each record (0x12 bytes). I am picking apart the bits for tones, power level, etc.
There is a bug in the VX7 code that constructs the memory name string.
Around line 161
for i in _mem.name: if i == "\xFF": break mem.name += CHARSET[i] mem.name = mem.name.rstrip()
In the loop, i is a byte. "\xFF" is a character. Looking for a byte value this way doesn't work. It is correct in other code (the VX3 code, for example):
if i == 0xFF:
The VX7 code will appear to work, since a series of 0xFF bytes are mapped to a series of 0x00 bytes by the character lookup. These bytes are then removed by the rstrip() function.
In the VX2 code I still haven't looked for (or found) the checksum. I commented out the check, so all I have right now is the following:
Read data from VX2r My home-made USB->VX2r interface is working with a transistor buffer on the FTDI Tx line.
Save .img file without verifying checksum This is useful as I can view it with a hex editor
Display some channels I can parse the frequency and name, and I think repeater offset is correct too. Some other fields are parsed, but I haven't verified their correctness.
So, progress is slow, but it's taking shape.
I also edited line 518 in mainapp.py as originally the dialog box title was "Discard changes?" but the dialog box contents said "Save changes?". I experienced cognitive dissonance every time it appeared, so I fixed it. Please fix it in the main code (it's not worth a patch...)
73,
Andrew ZL3AME