I have a 42 MB database that I used in the "good old" DOS days. The way to call it from any program was using a TSR that I still have as well.
The data is a strange combination of ASCII and hex.
For example for "to do; verb; irregular", "to do" is in the database, followed by a hex string. The stings "verb" and "irregular" are in a 300 lines data block in the program. My problem is that I've not yet been able to figure out a 1 on 1 relationship between the hex strings in the data and the strings in the program. In that case it would have been very simple to use any hex editor to replace the hex strings with the actual words. Hex strings can be from one to five bytes long as far as I found so far and show no obvious relationship with the DS:xxxx and/or string length.
But the program of course is flawlessly able to read these hex strings and translate them to human readable ASCII.
So now I got the idea that the same program with some tiny adaptation should be able to step through the entire database and convert it completely to a simple comma delimited file.
I am more or less able to read the ASM I created using IDA, I can see how it loads the program in memory, how it "terminates" but stays resident, how it responds to its hotkey, how it switches between Dictionary and Encyclopedia mode and so on. I've still not yet been able to find how it walks through the database, nor how it translates the hex strings.
Any suggestions are VERY welcome.
The data is a strange combination of ASCII and hex.
For example for "to do; verb; irregular", "to do" is in the database, followed by a hex string. The stings "verb" and "irregular" are in a 300 lines data block in the program. My problem is that I've not yet been able to figure out a 1 on 1 relationship between the hex strings in the data and the strings in the program. In that case it would have been very simple to use any hex editor to replace the hex strings with the actual words. Hex strings can be from one to five bytes long as far as I found so far and show no obvious relationship with the DS:xxxx and/or string length.
But the program of course is flawlessly able to read these hex strings and translate them to human readable ASCII.
So now I got the idea that the same program with some tiny adaptation should be able to step through the entire database and convert it completely to a simple comma delimited file.
I am more or less able to read the ASM I created using IDA, I can see how it loads the program in memory, how it "terminates" but stays resident, how it responds to its hotkey, how it switches between Dictionary and Encyclopedia mode and so on. I've still not yet been able to find how it walks through the database, nor how it translates the hex strings.
Any suggestions are VERY welcome.