Hey Kurt,

I don't know if VirtualT has any additional information that Bitchin100 does not, but I did a fair amount of ROM address investigation back in the day when I was writing the disassembler in VT. Each model (M100, T200, etc.) has a file that describes ROM addresses for routines. If you look in the src directory at the files:

kc85rom.c m100rom.c m10rom.c m200rom.c n8201rom.c n8300rom.c roms.h romstrings.c romstrings.h

You will see that romstrings.h enumerates known address (ROM and RAM) and each of the m100rom.c, m200rom.c, n8201rom.c etc. files identifies the address for the matching entries (note that not all enumerated values are present for all ROMs). The romstrings.c file supplies the text for each known ROM address while the individual "*rom.c" files map the enumeration to the physical address.

This may provide additional info, but not sure.

Ken

On 3/15/16 10:26 AM, Kurt McCullum wrote:
That was my thought as well. I've gone over the ROM versions quite a bit and the majority of the code is the same. Even comparing the RAM version to the ROM version of the 200 shows that the bulk of the code is the same. But there is the whole swapping in and out of the optrom that makes it difficult to do a direct comparison.

Thanks for the insight. I'll keep chipping away of this. Hopefully someone can find the originals but a disassembly may be the only way to make it happen.

Kurt

> The fact that the code was originally cross platform is also a point in your
> favor. Maybe they use a subset of features of both ROMs


On Tuesday, March 15, 2016 10:14 AM, John R. Hogerhuis <[email protected]> wrote:




On Tue, Mar 15, 2016 at 9:55 AM, Kurt McCullum <[email protected] <mailto:[email protected]>> wrote:

    As many of you know, I've been searching for the RAM versions of
    Sardine for quite some time. Bob P. located the 200 version but
    the 100 and NEC versions are still unaccounted for. Looking at
    Gary's 8201.net <http://8201.net/> site brought me to the BINCON
    utility. This aids in converting a model 100 CO file to one that
    will run on an NEC. This is done by using a cross reference table
    to create a new CO file with the proper machine language locations
    in ROM.

    This got me thinking. Would it be possible to create a cross
    reference table that would work in reverse. Say a 200 CO file to
    NEC or a 200 to 100? I realize the there is far more to the
    conversion such as starting memory locations but I wanted to float
    the idea out to see if it seems plausible. I believe the data for
    such a table exists on Bitchin100.


I think an automatic utility is unlikely to work because computer science (halting problem)

But a good recursive disassembler plus a mapping table of entry points is what you need. I am not sure there is a one to one mapping though (some ROM code exists on one platform on not the other, or the API / changed registers is different, etc.) so in some cases custom code would still need to be written.

The fact that the code was originally cross platform is also a point in your favor. Maybe they use a subset of features of both ROMs

-- John.




Reply via email to