Thanks Ken,
That will save me quite a bit of work.
Kurt
On Tuesday, March 15, 2016 11:03 AM, Ken Pettit <[email protected]> wrote:
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]> 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 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.