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