Re: [cc65] supercpu.c

Date view Thread view Subject view

From: David Holz (davidh_at_otterspace.com)
Date: 2002-11-20 16:41:40


From: "Ullrich von Bassewitz" <uz_at_musoftware.de>
> Yes, I've seen your page, and the fact that you did it this way, increased
my
> confidence that this is the right approach.

Remember, though, that I never implemented a full system of it (because
LUnix wasn't quite compatible with the things I was trying to do).  So not
all of the uability issues have been tested.

> The problem when moving the window pointer is, that the application cannot
> remember it anywhere, so you will have to use double indirection - and
cc65

I don't see where double-direction comes into play (pointer to a pointer).
The window pointer is in the same location in zp.  When I said "move the
window", I mean the pointer points to a different page.  Since you're
talking about having 1 window per application, make it have a fixed location
in zp that the compiler knows about, instead of a normal pointer variable.
But then again, I'm always a proponent of "better code through smarter
compilers" instead of using libraries to try to add basic functionality. :)

>   1. Unexpanded C64
>      As long as the graphics module is not used, the memory below the
kernal
>      may be used as extended memory. Copying is needed because the memory
>      cannot be accessed directly.

If the window pointer is fixed in zp, just update that pointer.  No copying
necessary.

>   6. REU
>      The REU uses fast DMA transfers (1 cycle per byte). It needs copying,
but
>      because of the REU speed, the solution would still be rather fast.

You can also have a simple LRU caching system, and give how many pages to
cache in RAM at compile-time.

> Are there any other known memory expansions out there, that do not map
into
> this scheme?

As far as I can see, it will work with everything.  If you remember back to
the DOS days, this type of API is very similar to EMS (bank in memory).  If
you have to copy data around anyway, like with the REU or SCPU, then a XMS
type of API (copy data between external & main RAM) would be faster, but
you'd lose all the speed of banking on systems that support it (GeoRAM,
linear access, and the cache idea).

--
White Flame (aka David Holz)
http://www.white-flame.com/
(spamblock in effect)

----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.


Date view Thread view Subject view

This archive was generated by hypermail 2.1.3 : 2002-11-20 16:41:11 CET