📄 storage.c
字号:
#include "storage.h"
#include "board.h"
#include "mmc.h"
#include "buffer.h"
unsigned char storageFlags = 0;
unsigned char InitStorage(){
unsigned char result;
result=InitMMC();
if (result==0x0e){
storageFlags = 1;
return 0;
}
if (result){ //error resulted in MMC startup
storageFlags = 4;
return 1; //MMC Init Error
}
storageFlags = 0;
return 0;
}
unsigned char PrepareToReadDiskSector(unsigned long sectorN){
if (!storageFlags){
//Storage device supports seek-before-read
if (SeekSector(sectorN)){
return 0x0f; //seek error code
}
storageFlags |= 0x02; //flag: a sector is seeked for reading
return 0; //ok return
}
return 0; //ok return
}
unsigned char ReadDiskSector(unsigned long sectorN){
//if a sector has not already been seeked, seek now.
if (!(storageFlags&0x02)){
if (SeekSector(sectorN)) return 0x0f; //seek error
}
storageFlags &= 0xfd; //clear sector-already-seeked flag
if (ReadPhysicalSector()){
return 0x10; //read error
}
return 0; /* All OK return */
}
void WriteDiskSector(unsigned long sectorN){
sectorAddress.l = sectorN;
dataBufPtr = diskSect.raw.buf;
WritePhysicalSector();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -