[uae] E-UAE on PalmOS

  • From: Henk Jonas <MetaView@xxxxxx>
  • To: uae@xxxxxxxxxxxxx
  • Date: Wed, 06 Apr 2005 13:37:51 +0200

Hi list,

I've ported E-UAE (partly) to Palm OS and found some issues regarding memory access:

I've defined ADDRESS_SPACE_24BIT mainly to get the structs smaller and save some memory on Palm OS. This leads to MEMORY_BANKS 256 in memory.h
I now found that WB 1.3 and several games try to access memory outside the 24 bit range. This leads to crashes on Palm OS and core dumps on Linux. I've fixed it with:


STATIC_INLINE uae_u32 get_long(uaecptr addr)
{
        if ((addr >> 16) < MEMORY_BANKS)
            return longget_1(addr);
        else
                return 0;
}
STATIC_INLINE uae_u32 get_word(uaecptr addr)
{
        if ((addr >> 16) < MEMORY_BANKS)
            return wordget_1(addr);
        else
                return 0;
}
STATIC_INLINE uae_u32 get_byte(uaecptr addr)
{
        if ((addr >> 16) < MEMORY_BANKS)
                return byteget_1(addr);
        else
                return 0;
}
STATIC_INLINE void put_long(uaecptr addr, uae_u32 l)
{
        if ((addr >> 16) < MEMORY_BANKS)
            longput_1(addr, l);
}
STATIC_INLINE void put_word(uaecptr addr, uae_u32 w)
{
        if ((addr >> 16) < MEMORY_BANKS)
            wordput_1(addr, w);
}
STATIC_INLINE void put_byte(uaecptr addr, uae_u32 b)
{
        if ((addr >> 16) < MEMORY_BANKS)
            byteput_1(addr, b);
}


in memory.h


Regards Henk

--
-------------------------------------------------------------------------
  Henk Jonas
  Palm OS ® certified developer

  metaview@xxxxxx                                   www.metaviewsoft.de
-------------------------------------------------------------------------

Other related posts: