From: utzoo!decvax!harpo!seismo!hao!menlo70!sytek!blk
Newsgroups: net.micro,net.micro.appl,net.micro.atar
Title: "new" CPU with 128 stacks, 16-bit registers
Article-I.D.: sytek.284
Posted: Tue Feb 15 21:13:28 1983
Received: Sun Feb 20 10:24:28 1983

	There is a super-stack machine now available for the atari,
apple, and commodore computers.  The "2056" cpu has 128 16-bit registers
which can be used as memory pointers or stack pointers.  Since the 
accumulator is 8-bit, the cpu will also split the registers into pairs
of 8-bit data registers.  
	There is a separate, high speed stack used by the interrupt handler
and subroutine nesting.  This stack has a maximum depth of 256 bytes.  
The other 128 (optional) stacks have no limit.
	The choice of stack can be indexed; this means you can refer to
stack 5, stack x, or stack 5 + x.  This 'x' can be another register 
or a memory location (slightly slower).
	An unusual but useful stack feature is the ability to reference
any element of a stack; PEEK at the 2nd stack byte, or POKE in a new 3rd
byte without disturbing the stack.


	op			 cycles			 bytes
	--			---------		-------
POP  {128}  [index]		11 / [14]		4 / [6]
PUSH {128}  [index]		11 / [14]		4 / [6]

PEEK {128}  [depth]		   12			   6
POKE {128}  [depth]		   12			   6


	For those of you who haven't guessed yet, this "2056" cpu is
	just the 6502 looked at in a different way.  This is a powerful
	and *elegant* design!  Let's not slight this noble chip.  OK?


note-	POP =		LDA (z),y; DEC z
	POP [index] =	LDX z; LDA (z, x); DEC z
	PEEK =		LDY z; LDA (z), y; LDY #0


		-brian