📄 frankasm.h
字号:
/******************************************************************************
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -