openMSX
IDEHD.hh
Go to the documentation of this file.
1 #ifndef IDEHD_HH
2 #define IDEHD_HH
3 
4 #include "HD.hh"
5 #include "AbstractIDEDevice.hh"
6 
7 namespace openmsx {
8 
9 class DeviceConfig;
10 class DiskManipulator;
11 
12 class IDEHD final : public HD, public AbstractIDEDevice
13 {
14 public:
15  IDEHD(const IDEHD&) = delete;
16  IDEHD& operator=(const IDEHD&) = delete;
17 
18  explicit IDEHD(const DeviceConfig& config);
19  ~IDEHD() override;
20 
21  template<typename Archive>
22  void serialize(Archive& ar, unsigned version);
23 
24 private:
25  // AbstractIDEDevice:
26  bool isPacketDevice() override;
27  const std::string& getDeviceName() override;
28  void fillIdentifyBlock (AlignedBuffer& buffer) override;
29  unsigned readBlockStart(AlignedBuffer& buffer, unsigned count) override;
30  void writeBlockComplete(AlignedBuffer& buffer, unsigned count) override;
31  void executeCommand(byte cmd) override;
32 
33  DiskManipulator& diskManipulator;
34  unsigned transferSectorNumber;
35 };
36 
37 } // namespace openmsx
38 
39 #endif
IDEHD(const IDEHD &)=delete
~IDEHD() override
Definition: IDEHD.cc:24
uint8_t byte
8 bit unsigned integer
Definition: openmsx.hh:26
Thanks to enen for testing this on a real cartridge:
Definition: Autofire.cc:5
IDEHD & operator=(const IDEHD &)=delete
auto count(InputRange &&range, const T &value)
Definition: ranges.hh:197
void serialize(Archive &ar, unsigned version)
Definition: IDEHD.cc:134