On Sat, 31 Jul 2010, Chris Young wrote: > On Sat, 31 Jul 2010 17:03:04 +0100 (GMT Daylight Time), Jeffrey Lee wrote: > >> I doubt I'll be looking at ArcEm much more in the near future, so I'll >> leave it to you to decide what (if anything) to do with these changes. I >> haven't tried them on anything other than RISC OS, so it wouldn't surprise >> me if some of the other platforms fail to compile or are fundamentally >> broken. > > I had to fix up the sound support to get it working here (diffs > attached, nothing major). > > Well, I say working, there's something wrong as although it appears to > work and initialises the display, the ROM either doesn't get executed > or at least doesn't get as far as even clearing the pointer, let alone > printing anything on the screen. > > The emulator hasn't crashed as I can still send commands to it, it's > just the emulation which has apparently frozen.
Hmm, Amiga is big endian, isn't it? I didn't make any effort to ensure the new memory code ran on big-endian machines, so it wouldn't surprise me if it's failing. Take a look at the LoadByte, StoreByte and SwapByte functions in fastmap.c, and for anything in arch/armarc.c that handles the FASTMAP_ACCESSFUNC_BYTE flag. With any luck that should be all that needs changing. Also, one thing I just remembered - the code for the builtin SWIs (in arminit.c) is disabled, because at the time I couldn't be bothered rewriting it to use the new memory functions. But looking at it I see that the SWIs are only used for shutdown and debugging, and not smoething that could hang the boot sequence (e.g. HostFS - which is another thing I haven't tested). Another thing that needs fixing is the handling of physical pages that map to the same logical page. The ARMul_PurgeFastMapPTIdx function in arch/armarc.c has a little bit of code ot handle it, which is enough for RISC OS to work (the OS didn't like it if I just nuked the entry without checking for double mapping). But it doesn't deal with the case where a page is mapped in then immediately mapped out again - the FastMap entries will be left as unmapped memory instead of pointing to the previous MEMC mapping. So I guess a linear search or some kind of linked list will be needed to ensure the emulator behaves correctly when a logical page needs to be mapped out. Cheers, - Jeffrey ------------------------------------------------------------------------------ The Palm PDK Hot Apps Program offers developers who use the Plug-In Development Kit to bring their C/C++ apps to Palm for a share of $1 Million in cash or HP Products. Visit us here for more details: http://p.sf.net/sfu/dev2dev-palm _______________________________________________ arcem-devel mailing list arcem-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/arcem-devel