PsionOrganiser ROM Disassembly

Looking for PSION Organiser II Software
User avatar
Lostgallifreyan
Posts: 92
Joined: Fri Jun 11, 2021 2:52 pm

Re: PsionOrganiser ROM Disassembly

Post by Lostgallifreyan »

Thanks, that might be helpful if I get into it again. It might be easy to make a tool though, if I remember right, it's just a jump that takes a form using a 16-bit address instead of a relative 8-bit jump distance. I recently made a LuaTools system that is a hybrid of Lua and C, and Lua makes it very easy to develop small tools on demand for projects where some automation is helpful in moderately complex tasks, a lot easier than doing it in C. I imagine TCL is interpreted, like Lua, but I'd stay with Lua to avoid having to learn more languages. Summer, after lockdowns various, makes coding look very unexciting, at least for a while. :) I finished a couple of major projects, thought I'd turn to something new, but I can't face coding right now, I just have an overwhelming urge to play Stranglers basslines...
amenjet
Posts: 122
Joined: Sun Aug 22, 2021 6:56 am

Re: PsionOrganiser ROM Disassembly

Post by amenjet »

Well, the idea of compiling the ghidra output has stumbleda bit as shown by this code:

Code: Select all

                      **************************************************************
                      *                          FUNCTION                          *
                      **************************************************************
                             undefined FUN_80a5()
             undefined         A:1            <RETURN>
                             FUN_80a5                                        XREF[2]:     8044(c), FUN_809a:80a0(c)  
            80a5 cc 40 40        LDD        #0x4040
            80a8 bd ab 1e        JSR        DAT_ab1e
            80ab ce 22 88        LDX        #0x2288
            80ae 39              RTS
which is decompiled as :

Code: Select all

void FUN_80a5(void)

{
  (*_DAT_ab1e)(0x40);
  return;
}

it looks like the decomiler doesn't follow registers being return values. Also, for some reason the argument of #$4040 is passed as 0x40. So it doesn't work well enough to just compile. Oh well.

Andrew
Post Reply