1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-06-03 04:29:31 +00:00
C02/x16/include/veraspr.h02
2019-10-27 14:25:30 -04:00

273 lines
7.6 KiB
Plaintext

/**********************************************
* veraspr.h02 - Sprite Manipulation Routines *
* for Commander X16 VERA Chip *
* Requires: x16.h02 *
* stddef.h02 *
* veramem.h02 *
**********************************************/
#define MAXSPR 128 //Maximum Sprite Index;
/* Sprite Attributes */
struct sprite {
int addr; //Data Address
int horz; //Horizontal Coordinate
int vert; //Vertical Coordinate
char ctrl; //Control Register
char size; //Size Register
};
/* Sprite Control Registers */
struct spregs {
char ctrl; //Control Register
char clsn; //Collision Mask
};
/* Add to Sprite Address Register *
* Args: char n - Sprite Index *
* int w - Integer to Add */
char addspd();
/* Clear Sprite Attributes *
* Args: char n - Sprite Index */
char clrspr();
/* Get Vera Address from Sprite Address *
* Args: int d - Sprite Address *
* Returns: char bank - Address Bits 16-19 *
* int addr - Address Bits 0-15 */
char getsca();
/* Calculate Sprite Data Size *
* Args: char w - Width Specifier *
* char h - Height Specifier *
* char m - Mode (Bits per Pixel) *
* Returns: int s - Data Size in Bytes */
char getscl();
/* Calculate Sprite Size in Pixels *
* Args: char s - Height/Width Specifier *
* Returns: char p - Height/Width in Pixels *
* char m - Multiplier Shift Count */
char getscs();
/* Get Sprite Data Address *
* Args: char n - Sprite Index *
* Returns: char bank - Address Bits 16-19 *
* int addr - Address Bits 0-15 */
char getspa();
/* Get Sprite Bits per Pixel *
* Args: char n - Sprite Index *
* Returns: char m - Sprite Mode *
* 0=4bpp, 1=8bpp */
char getspb();
/* Read Sprite Collision Status *
* Returns: char c - Collision Status */
char getspc();
/* Get Sprite Address Register *
* Args: char n - Sprite Index *
* Returns: int w - Address Register Contents */
char getspd();
/* Read Sprite Enabled Status *
* Args: char n - Sprite Index *
* Returns: char e - Enabled (TRUE/FALSE) */
char getspe();
/* Get Sprite Horizontal Flip Flag *
* Args: char n - Sprite Index *
* Returns: char f - Flipped (TRUE/FALSE) */
char getspf();
/* Get Sprite Register *
* Args: char n - Sprite Index *
* char o - Register Offset *
* Returns: char r - Register Contents */
char getspg();
/* Get Sprite Height Specifier *
* Args: char n - Sprite Index *
* Returns: char h - Height Specifier */
char getsph();
/* Read Sprite Attribute Pair *
* Args: char n - Sprite Index *
* char 0 - Attribute Offset *
* Returns: int i - Attribute LSB,MSB */
char getspi();
/* Get Sprite Data Size *
* Args: char n - Sprite Index *
* Returns: int s - Data Size in Bytes */
char getspl();
/* Get Sprite Collision Mask *
* Args: char n - Sprite Index *
* Returns: char m - Collision Mask */
char getspm();
/* Get Sprite Control Register *
* Args: char n - Sprite Index *
* Returns: char r - Register Contents */
char getspn();
/* Get Sprite Attribute Address *
* Args: char n - Sprite Index *
* Returns: int d - Address */
char getspo();
/* Get Sprite Palette Offset *
* Args: char n - Sprite Index *
* Returns: char p - Palette Offset */
char getspp();
/* Get Sprite Attributes *
* Args: char n - Sprite Index *
* int d - Struct Address *
* Returns: char b - Number of Bytes */
char getspr();
/* Get Sprite Size Register *
* Args: char n - Sprite Index *
* Returns: char r - Register Contents */
char getsps();
/* Test Sprite Collision Status *
* Args: char b - Collision Bitmask *
* Returns: char c - Collision Status */
char getspt();
/* Get Sprite Width, Height, and Mode *
* Args: char n = Sprite Index *
* Returns: char w - Width Specifier *
* char h - Height Specifier *
* char m - Mode (Bits per Pixel) */
char getspu();
/* Get Sprite Vertical Flip Flag *
* Args: char n - Sprite Index *
* Returns: char f - Flipped (TRUE/FALSE) */
char getspv();
/* Get Sprite Width Specifier *
* Args: char n - Sprite Index *
* Returns: char w - Width Specifier */
char getspw();
/* Get Sprite X-Coordinate *
* Args: char n - Sprite Index *
* Returns: int i - X-Coordinate */
char getspx();
/* Get Sprite Y-Coordinate *
* Args: char n - Sprite Index *
* Returns: int i - Y-Coordinate */
char getspy();
/* Get Sprite Z-Depth *
* Args: char n - Sprite Index *
* Returns: char z - Z-Depth */
char getspz();
/* Set Sprite Bits per Pixel *
* Args: char n - Sprite Index *
* char m - Sprite Mode *
* 0=4bpp, 1=8bpp */
char setspb();
/* Set Sprite Address Register *
* Args: char n - Sprite Index *
* int w - Address Value */
char setspd();
/* Set Sprite Enabled Status *
* Args: char e - Enabled (TRUE/FALSE) */
char setspe();
/* Set Sprite Horizontal Flip Flag *
* Args: char n - Sprite Index *
* char f - Flipped (TRUE/FALSE) */
char setspf();
/* Set Sprite Register *
* Args: char n - Sprite Index *
* char o - Register Offset *
* char b - Value to Write */
char setspg();
/* Set Sprite Height Specifier *
* Args: char n - Sprite Index *
* char w - Height Specifier */
char setsph();
/* Write Sprite Attribute Pair *
* Args: char n - Sprite Index *
* char 0 - Attribute Offset *
* Requires: setrxy(integer) */
char setspi();
/* Set Sprite Collision Mask *
* Args: char n - Sprite Index *
* char m - Collision Mask */
char setspm();
/* Set Sprite Control Register *
* Args: char n - Sprite Index *
* char r - Register Contents */
char setspn();
/* Set Sprite Attribute Address *
* Args: char n - Sprite Index *
* char o - Register Offset */
char setspo();
/* Set Sprite Palette Offset *
* Args: char n - Sprite Index *
* char p - Palette Offset */
char setspp();
/* Set Sprite Attributes *
* Args: char n - Sprite Index *
* int d - Struct Address *
* Returns: char b - Number of Bytes */
char setspr();
/* Aet Sprite Size Register *
* Args: char n - Sprite Index *
* char r - Register Contents */
char setsps();
/* Set Sprite Vertical Flip Flag *
* Args: char n - Sprite Index *
* char f - Flipped (TRUE/FALSE) */
char setspv();
/* Set Sprite Width Specifier *
* Args: char n - Sprite Index *
* char w - Width Specifier */
char setspw();
/* Set Sprite X-Coordinate *
* Args: char n - Sprite Index *
* int i - X-Coordinate */
char setspx();
/* Set Sprite Y-Coordinate *
* Args: char n - Sprite Index *
* int i - Y-Coordinate */
char setspy();
/* Set Sprite Z-Depth *
* Args: char n - Sprite Index *
* char z - Z-Depth */
char setspz();
/* Subtract from Sprite Address Register *
* Args: char n - Sprite Index *
* int w - Integer to Subtract */
char subspd();