From: Arvid Norberg (c99ang_at_cs.umu.se)
Date: 2001-03-12 18:35:01
On Sat, 10 Mar 2001, Ullrich von Bassewitz wrote: > > On Sat, Mar 10, 2001 at 10:53:33AM +0100, Arvid Norberg wrote: > > I see what you mean. But isn't the stack pointer increamented > > automatically by pha? > > The hardware stack of the 6502 (in page 1) is really limited. 256 bytes are > right to nothing for a high level language. Assume you have a C function with > 50 bytes of parameters and local variables (which is not much). Five recursive > calls to this function plus an interrupt would then blow up the stack. > > So cc65 is actually using two stacks: For return addresses, the hardware stack > is used. For function parameters, local variables and other stuff, a separate > software stack (also called "C stack") is used. > > What I was talking about is the software stack. To manage this stack, the > runtime modules use a software stack pointer located in the zero page. > Incrementing or decrementing this variable is no atomic operation, so there is > a problem with reentrancy. > Now I understands, thank you very much. --- Arvid Norberg ---------------------------------------------------------------------- To unsubscribe from the list send mail to majordomo_at_musoftware.de with the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2001-12-14 22:05:39 CET