#ifndef __ata_header__ #define __ata_header__ void ATA_init(); void ATAPI_prep_sector(DWRD sector); void ATAPI_prep_sector1(); BOOL ATAPI_prep_sector2(DWRD sector); void xfer_data(BYTE *buf, WORD words); void ATAPI_wait_for_sect(); BOOL ATAPI_sect_ready(); bit CDerror = FALSE; #define NO_RESET 0 //command registers #define ATA_CMD_REG 16+NO_RESET #define ATA_DATA ATA_CMD_REG+0 #define ATA_ERROR ATA_CMD_REG+1 #define ATA_FEAT ATA_CMD_REG+1 #define ATA_INTRE ATA_CMD_REG+2 #define ATA_BCNTL ATA_CMD_REG+4 #define ATA_BCNTH ATA_CMD_REG+5 #define ATA_DRVSEL ATA_CMD_REG+6 #define ATA_STATUS ATA_CMD_REG+7 #define ATA_CMD ATA_CMD_REG+7 //control registers #define ATA_CRL_REG 8+NO_RESET #define ATA_ASTAT ATA_CRL_REG+6 #define ATA_DEVCRL ATA_CRL_REG+6 #define ATAPI_DELAY 1 #define DISABLE_XRAM MCUCR &= 0x7F; #define ENABLE_XRAM MCUCR |= 0x80; #define DIOW(a) PORTB.7 = a #define DIOR(a) PORTB.6 = a #endif