mirror of
https://github.com/hsoft/collapseos.git
synced 2024-09-06 14:48:46 +10:00
17 lines
690 B
Plaintext
17 lines
690 B
Plaintext
Stack management
|
|
|
|
The Parameter stack (PS) is maintained by SP and the Return
|
|
stack (RS) is maintained by IX. This allows us to generally use
|
|
push and pop freely because PS is the most frequently used.
|
|
However, this causes a problem with routine calls: because in
|
|
Forth, the stack isn't balanced within each call, our return
|
|
offset, when placed by a CALL, messes everything up. This is
|
|
one of the reasons why we need stack management routines below.
|
|
IX always points to RS' Top Of Stack (TOS)
|
|
|
|
This return stack contain "Interpreter pointers", that is a
|
|
pointer to the address of a word, as seen in a compiled list of
|
|
words.
|
|
|
|
(cont.)
|