frankasm.h

来自「Frank s MP3 Player Source Files」· C头文件 代码 · 共 79 行

H
79
字号
/******************************************************************************

	Title:	  Frank's MP3 project header file for ASSEMBLER files only
	Author:	  Frank Van Hooft
	Date:	  18 November 2001

	This file contains definitions required for the MP3 player project. 
	It should be #include'd into only the assembly source files.
    
	Note that only definitions which are required by assembler 
	files are in this file.
				  
******************************************************************************/



#define param1			r18				/* first parameter passed in or returned */
#define param2			r19				/* second parameter */
#define temp			r16				/* temporary variable */
#define temp2			r17				/* second temporary variable */

#define XL				r26				/* define the 16-bit register pairs */
#define XH				r27
#define YL				r28
#define YH				r29
#define ZL				r30
#define ZH				r31

#define SPL				0x3d
#define SPH				0x3e			/* address of the stack pointer registers */

#define RAMENDF			0x10ff			/* last SRAM address (init stack to this) */


/* The following are IDE register addresses for the AVR to *READ* from */
#define IDERD_AS		0b10110111		/* Alternate Status register */
#define IDERD_DA		0b10111111		/* Drive Address register */
#define IDERD_DATA		0b01000111		/* Data Port register */
#define IDERD_ERR		0b01001111		/* Error register */
#define IDERD_SC		0b01010111		/* Sector Count register */
#define IDERD_LBA0		0b01011111		/* LBA bits  0-7  register */
#define IDERD_LBA1		0b01100111		/* LBA bits  8-15 register */
#define IDERD_LBA2		0b01101111		/* LBA bits 16-23 register */
#define IDERD_LBA3		0b01110111		/* LBA bits 24-17 register */
#define IDERD_ST		0b01111111		/* Status register */

/* The following are IDE register addresses for the AVR to *WRITE* to */
#define IDEWR_DC		0b10110111		/* Device Control register */
#define IDEWR_DATA		0b01000111		/* Data Port Register */
#define IDEWR_FEA		0b01001111		/* Feature register */
#define IDEWR_SC		0b01010111		/* Sector Count register */
#define IDEWR_LBA0		0b01011111		/* LBA bits  0-7  register */
#define IDEWR_LBA1		0b01100111		/* LBA bits  8-15 register */
#define IDEWR_LBA2		0b01101111		/* LBA bits 16-23 register */
#define IDEWR_LBA3		0b01110111		/* LBA bits 24-17 register */
#define IDEWR_CMD		0b01111111		/* Command register */

/* IDE Status Register bit numbers */
#define IDEST_BSY_BIT	7				/* BSY (BUSY) bit */
#define IDEST_RDY_BIT	6				/* DRDY (drive ready) bit */
#define IDEST_DSC_BIT	4				/* Drive Seek Complete bit */
#define IDEST_COR_BIT	2				/* Corrected data bit */
#define IDEST_ERR_BIT	0				/* ERR (error) bit */

/* Define the FindFile queue to be the same as the MP3 Data queue, ie, FindFile uses the MP3 data queue */
#define FINDFILEQ_size  MP3DATAQ_size
#define FINDFILEQ		MP3DATAQ

/* These constants used by CalcNextCluster function */
#define CalNxCl_SDS		0				/* SeekDrive state */
#define CalNxCl_SDS2	1				/* SeekDrive2 state */
#define CalNxCl_GCS		2				/* GetCluster state */
#define CalNxCl_Busy	3				/* Return code: routine is still busy */
#define CalNxCl_ChainEnd 4				/* Return code: error, end of chain, no more clusters */
#define CalNxCl_Done	5				/* Return code: done, next cluster number on stack */



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?