[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 65816 coprocessor options..



Pim Blokland wrote:

> Processors didn't do that in those days, not even the 8086!
>

The early PC cpu's used 24 bit addressing, it was very close
to a bank switch method. By changing a register, you changed
the memory bank. With the model I suggest, it would take at
least another register or soft switch.

> But what is the USE of it? I mean, I know later processors can, but I
> never could envision the benefits of having two blocks of memory in two
> different locations instead of one large block.

The different blocks of memory are only useful when switched into
the cpu address space. By actively switching code/data banks you
open up many possibilities.

> Can you give me an example of a situation where being able to remap a
> piece of RAM from, say $001000 to $401000 would give you a distinct
> advantage over not being able to do that?

I suppose it's a matter of preference. If you take the 65802 cpu
with it's 16 bit data and 64k address space you could manage a
whole lot of different things. It would have been a viable upgrade
path for the 8 bit Apple 2. Don't get me wrong, the GS is a great
computer, but (IMHO) it was a major departure from the Apple2
systems. It would have been a fairly easy system design upgrade
for an Apple2 since they could partially handle this by bank
switching methods.

One program possibility comes to mind. You could develop an
OS with individual processes with it's own memory area. Code
or data could be mapped anywhere in the 64k address space. It
could have unlimited memory available by adding more banks
and a simple hardware soft switch set could turn on the swapping
processes to access the memory area. When not active the memory
area is protected from corruption by faulty or errant processes.

Flat address areas are great for large programs, but not always
the best for protected multitasking projects. Well, as they say,
for every programmer there is a different method of code
development.

Phoenyx