📄 memory card.h
字号:
#ifndef __MEMORY_CARD
#define __MEMORY_CARD 1
unsigned char getDriveNumber(void);
void setDriveNumber(unsigned char);
void setOperatingMode(unsigned char);
unsigned char send_command(unsigned char cmd, unsigned char drive,unsigned long address,unsigned char nSectors);
unsigned char writeSector(unsigned long address);
unsigned char readSector(unsigned long address);
unsigned char getByteFromSector(unsigned int);
void setByteInSector(unsigned int,unsigned char);
unsigned long initMemoryCard(void);
// CF registers
#define CORCON 0x0200
#define SOCKET_COPY 0x0206
// registers
#define RD_DATA 0x0
#define WR_DATA 0x0
#define ERROR_REG 0x1
#define FEATURES 0x1
#define SECTOR_CNT 0x2
#define SECTOR_NO 0x3
#define CYLINDER_LO 0x4
#define CYLINDER_HI 0x5
#define DRIVE_HEAD 0x6
#define STATUS 0x7
#define COMMAND 0x7
#define ALT_STATUS 0xe
#define DEVICE_CTRL 0xe
#define DRIVE_ADDRESS 0xf
// register bits
#define BAD_BLOCK 0x80
#define UNCORRECTABLE 0x40
#define SECTOR_ID_ERROR 0x10
#define ABORT 0x04
#define GENERAL_ERROR 0x01
#define LBA 0x40
#define DRIVE_NO 0x10
#define BUSY 0x80
#define READY 0x40
#define WRITE_FAULT 0x20
#define CARD_READY 0x10
#define DATA_REQUEST 0x08
#define CORRECTABLE_ERROR 0x04
#define ERROR 0x01
// CORCON values
#define MEMORY_MAPPED 0
#define IO_MAPPED 1
#define IO_MAPPED_1F 2
#define IO_MAPPED_17 3
// ATA COMMANDS
#define READ_SECTOR 0x20
#define WRITE_SECTOR 0x30
#define IDENTIFY_DRIVE 0xec
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -