openMSX
memory
SdCard.hh
Go to the documentation of this file.
1
#ifndef SDCARD_HH
2
#define SDCARD_HH
3
4
#include "
openmsx.hh
"
5
#include "
circular_buffer.hh
"
6
#include "
DiskImageUtils.hh
"
7
#include <memory>
8
9
namespace
openmsx
{
10
11
class
DeviceConfig;
12
class
HD
;
13
14
class
SdCard
15
{
16
public
:
17
explicit
SdCard
(
const
DeviceConfig
& config);
18
~SdCard
();
19
20
byte
transfer
(
byte
value,
bool
cs);
21
22
template
<
typename
Archive>
23
void
serialize
(Archive& ar,
unsigned
version);
24
25
// private:
26
enum
Mode
{
27
COMMAND
,
28
READ
,
29
MULTI_READ
,
30
WRITE
,
31
MULTI_WRITE
32
};
33
34
private
:
35
void
executeCommand();
36
[[nodiscard]]
byte
readCurrentByteFromCurrentSector();
37
38
private
:
39
const
std::unique_ptr<HD> hd;
// can be nullptr
40
41
byte
cmdBuf[6];
42
SectorBuffer
sectorBuf;
43
unsigned
cmdIdx;
44
45
cb_queue<byte>
responseQueue;
46
47
byte
transferDelayCounter;
48
Mode
mode;
49
unsigned
currentSector;
50
int
currentByteInSector;
51
};
52
53
}
// namespace openmsx
54
55
#endif
DiskImageUtils.hh
circular_buffer.hh
cb_queue< byte >
openmsx::DeviceConfig
Definition:
DeviceConfig.hh:21
openmsx::SdCard
Definition:
SdCard.hh:15
openmsx::SdCard::~SdCard
~SdCard()
openmsx::SdCard::SdCard
SdCard(const DeviceConfig &config)
Definition:
SdCard.cc:37
openmsx::SdCard::Mode
Mode
Definition:
SdCard.hh:26
openmsx::SdCard::READ
@ READ
Definition:
SdCard.hh:28
openmsx::SdCard::MULTI_READ
@ MULTI_READ
Definition:
SdCard.hh:29
openmsx::SdCard::MULTI_WRITE
@ MULTI_WRITE
Definition:
SdCard.hh:31
openmsx::SdCard::COMMAND
@ COMMAND
Definition:
SdCard.hh:27
openmsx::SdCard::WRITE
@ WRITE
Definition:
SdCard.hh:30
openmsx::SdCard::serialize
void serialize(Archive &ar, unsigned version)
Definition:
SdCard.cc:337
openmsx::SdCard::transfer
byte transfer(byte value, bool cs)
Definition:
SdCard.cc:72
openmsx
This file implemented 3 utility functions:
Definition:
Autofire.cc:9
openmsx::HD
HD
Definition:
HD.cc:286
openmsx.hh
openmsx::SectorBuffer
Definition:
DiskImageUtils.hh:90
Generated on Sat Jul 23 2022 15:17:17 for openMSX by
1.9.1