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.