The floating point encoding in the NEC is much different than the other models.  The M100/102/200, etc. use BCD encoding, but I never could figure out how NEC was encoding it.

Some bizzare encoding where single precison ZERO is represented as 00h 00h C7h 00h

Ken

On 2/19/23 12:33 PM, Stephen Adolph wrote:
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