I spent some time the other night with a hex editor and a fresh default copy of an .rdt file for the MD380, thinking, “How hard can this be to reverse engineer and build an actually decent and usable contact manager?”
Oh, honey. It’s hard. Because the record format is a mess. (This, I hasten to add, is Moto’s fault — not Tytera’s. It’s Moto’s file format, they’re just living with it.)
They have a whole bunch of settings — some of which have no relationship to others — overloaded bitwise into single bytes. Now I don’t really have a problem with that, it’s a standard way to save space in a record format for yes/no checkboxes and multi-choice lists, but really, they should have arranged things better; it’s like they tried to cram everything they possibly could into a single byte, then ran out of room (or someone woke up and realized what a Charlie Foxtrot they’d made of the record structure, but by then it was too late if they wanted to preserve backward compatibility) and started using other bytes in a slightly-more organized fashion.
What really blew my mind, though, was how they set frequencies for channels. I would have thought they might have used a floating-point, real number for that purpose; two bytes would easily suffice if they did. But no, they use four bytes and they set them to contain the actual digits that you type into the frequency box. For instance, if you are setting a frequency of 443.850 MHz, the file contains four bytes as follows: “00 50 38 44”. That is a faux little-endian method of storing the number; reading it from the right-most to the left-most byte gives you the frequency, which is always stored by DMR2 in the format nnn.nnnnn . This doesn’t really upset me much, because it isn’t that difficult to read those four bytes and convert them to eight characters of text in a text box.
But it shouldn’t be too hard to suss out the bit settings for the other data, and of course any text in the record (i.e. the channel name) is just plain old 2-byte Unicode. It’s just a shame that Moto/ConnectSystems/Tytera haven’t felt the need to produce a truly usable piece of modern contact and channel management software to go with their space-age radios.