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 >>>> >>>> >>>> >>>> >>>