Yah I'm not sure it is actually doable, in a reasonable amount of time
effort.
It is hard to separate data tables from code.

I found one disassembler that was capable of labeling, and tracing code,
but it did not support undoc opcodes, so it wasn't a good disassembly to
use.

I think all the issues could be overcome, but it would be a sizable amount
of effort indeed.

I did learn some python in the process.


On Sun, Feb 19, 2023 at 2:48 PM Gary Weber <g...@web8201.com> wrote:

> Hey Steve....
>
> So this is definitely going to be pretty involved.  As people have already
> stated, the math subsystem of the Model 100's vs. NEC 8201's version of
> BASIC is pretty different.  Going through that list of addresses and just
> looking at the instructions being done by the M100 for each as yielded no
> results when trying to match them up with NEC equivalents when looking at
> both of my master disassemblies for each ROM.
>
> I have documentation on a lot of the NEC's math functions, so if there's a
> way to figure out *what* each of those M100 calls are trying to do from
> SuperROM (and I'm guessing from the Lucid app), then we may be able to find
> equivalents in *functionality*, and then be able to add a bit of of code in
> order to get the calling convention and result output translated back into
> what SuperROM wants.  It would be a pretty daunting task, IMO.
>
> Pretty much everything else in the machines are pretty similar, except
> when it comes to BASIC.  I've even seen cases where math calculations give
> results that are in a slightly different precision between the Tandy & NEC
> flavors.  (This was something to do with the ATN() function if I recall
> correctly.)
>
> Gary
>
>
>
> On Sat, Feb 18, 2023 at 5:39 PM Gary Weber <g...@web8201.com> wrote:
>
>> Hi Steve,
>>
>> Well first of all, it's awesome you've got a renewed interest in this
>> little project!
>>
>> One resource you might also find helpful is the ModelT Memory Map
>> Database:
>> https://www.web8201.net/default.asp?content=modelt_memorymaps/mapview.asp
>> I'm also willing to assist with the conversions on those addresses.  I'll
>> take a first stab and finding the equivalents for the NEC on your list.
>>
>> Gary
>>
>>
>>
>>
>>
>> On Sat, Feb 18, 2023 at 1:49 PM Kenneth Pettit <petti...@gmail.com>
>> wrote:
>>
>>> Hey Steve,
>>>
>>> Looks like the NEC and M100 math routines are a fair amount different.
>>>
>>> I have started a task of annotating the NEC VirtualT disassembly listing
>>> with the hand-coded changes I made to the M100 disassembly.  We'll see how
>>> far I get along this path (There are a LOT of additions I made by hand).
>>>
>>> Ken
>>>
>>> On 2/18/23 12:07 PM, Stephen Adolph wrote:
>>>
>>> Reviving this thread.
>>>
>>> SuperROM uses RST1 to make "trampoline" calls to the main ROM.
>>> I've gone through all of the RST1 calls that SuperROM makes to the M100
>>> main rom.
>>> Most convert well.
>>>
>>> The really big gap is that the math routines are very different in
>>> PC-8201.
>>>
>>> If there is anyone motivated to help, It would be helpful to figure out
>>> the equivalent calls PC-8201 calls for this list of M100 main ROM calls.
>>>
>>> 0x30C2
>>> 0x31B5
>>> 0x31B8
>>> 0x31BB
>>> 0x31C1
>>> 0x31C4
>>> 0x31CA
>>> 0x31CD
>>> 0x3469
>>> 0x3472
>>> 0x34D2
>>> 0x3501
>>> 0x3510
>>> 0x3513
>>> 0x35BA
>>> 0x35CF
>>>
>>> Ideally requiring no major code rework on SuperROM to make it all work.
>>>
>>>
>>>
>>>
>>>
>>> On Mon, Jul 12, 2021 at 8:30 AM Stephen Adolph <twospru...@gmail.com>
>>> wrote:
>>>
>>>> Noting that SuperROM has never been found (or never released?) for NEC,
>>>> it seems to me given what I know about making applications run on both
>>>> platforms, that it should be very straightforward to translate the M100
>>>> SuperROM into an NEC variant.  After all, the NEC and M100 are so similar.
>>>>
>>>> Does anyone have any thoughts on this?
>>>>
>>>> Process could be:
>>>> - Disassemble
>>>> - find the trampoline, and adjust for NEC memory map
>>>> - look for "trampoline" calls to the main ROM, and convert to NEC
>>>> addresses
>>>> - look for upper RAM addresses, and convert to NEC addresses
>>>> ---> this could be a bit tricky I admit, because it may not always be
>>>> apparent that a register pair value is being used as an upper RAM pointer
>>>> - adjust the hardware interrupt  if needed
>>>>
>>>>
>>>> cheers
>>>> Steve
>>>>
>>>>
>>>>
>>>>
>>>

Reply via email to