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