[Coco] Good old days with many CPUs Re: Midwest VCF
gheskett at wdtv.com
Tue Sep 27 20:16:29 EDT 2011
On Tuesday, September 27, 2011 07:53:13 PM Steve Bjork did opine:
> The stacks tell the story...
> The TI9900 CPU gets a Zero for 0 stack pointers
I may be screwing this up because I still do not fully grok the TI9900's
Why does it need a stack? Multitasking task switching is as simple as
switching the contents of the pointer register so it points at a different
register image. The pointer register is I believe, also in memory. I think
and the TI9900 literally has no registers of its own other than a fixed
memory location for the register image pointer. No process ever knows if
its running or stopped because when that set of registers, which includes
its program counter, just sit there while the register pointer is pointing
at a different register image and executing that process.
That may not be a 100% accurate picture, and I'll duck and run but it
should be good enough for this discussion. ;)
> The 6502 CPU gets 1/2 because their stack is an 8-bit pointer. (Too easy
> to overflow)
And probably the biggest reason I've called it drain bamaged from the kim-1
days.. The other reason is the 8 bit conditional branch limit. The Z80
also suffers from this "within the page" limit, so conditional branches to
anyplace in its address space are a 2 step process, loading up the stack.
> The Z80 CPU get a One for a 16-bit stack pointer.
It's been yonks Steve, since I last played with a Z80, but didn't the dual
register set, switchable with the $EB command, include a 2nd stack pointer?
I don't remember after 30 years of staying away from it if at all possible.
> The 6809 CPU gets a Two for 2 stack pointers (system and user, both with
> the 680X0 CPU get a Two (or better) for One system stack and up to 7
> User stacks pointers.
> I would not want to write OS-9 for any CPU with a stack score of less
> than 2.
On that we agree violently. ;-) In fact, I'm not convinced it would even
"There are four boxes to be used in defense of liberty:
soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
<Hydroxide> knightbrd: from knightbrd.brain import * :)
<knghtbrd> Oh gods if it were that easy ..
<knghtbrd> from carmack.brain import OpenGL
More information about the Coco