C02/include/stack.h02

61 lines
1.9 KiB
Plaintext

/********************************************
* stack - Software Stack Functions for C02 *
********************************************/
/* Drop Top Entry from Stack *
* Returns: A=Number of bytes dropped *
* 0 if none */
char stkdrp();
/* Duplicate Top Stack Entry *
* Returns: A=Number of bytes retrieved *
* 0 if none or overflow */
char stkdup();
/* Duplicate Entry Under Top of Stack *
* Returns: A=Number of bytes retrieved *
* 0 if none or overflow */
char stkovr();
/* Pop Top Stack Entry into Array *
* Args: n - Number of bytes to write *
* &m - Array to pop contents into *
* Returns: A=Number of bytes retrieved *
* 0 if none */
char stkpop();
/* Push Array Contents onto Stack *
* Args: n - Number of bytes to write *
* &m - Array containing bytes to push *
* Returns: A=$FF if bytes were written *
* $00 if block was overflowed */
char stkpsh();
/* Reset Stack Pointer to Stack Start *
* Returns: Y,X=Pointer Address */
void stkrst();
/* Get Stack Size *
* Returns: A=$FF if size greater than 0 *
* $00 if stack is empty *
* Y,X=Stack size in bytes */
void stksiz();
/* Push String onto Stack *
* Args: &m - String to push *
* Returns: A=$FF if bytes were written *
* $00 if block was overflowed */
char stkstr();
/* Swap Top and Second Stack Entries *
* Returns: A=Number of bytes in new top *
* 0 if none or overflow */
char stkswp();
/* Copy Top Stack Entry into Array *
* Args: n - Number of bytes to write *
* &m - Array to pop contents into *
* Returns: A=Number of bytes retrieved *
* 0 if none */
char stktop();