23 void execute(std::span<const TclObject> tokens,
24 TclObject& result, EmuTime::param time)
override;
25 [[nodiscard]] std::string
help(std::span<const TclObject> tokens)
const override;
26 void tabCompletion(std::vector<std::string>& tokens)
const override;
34 static constexpr unsigned MAX_CD = 26;
47 void insert(
const std::string& filename);
52 template<
typename Archive>
53 void serialize(Archive& ar,
unsigned version);
68 static constexpr byte REL = 0x04;
70 static constexpr byte I_O = 0x02;
72 static constexpr byte C_D = 0x01;
77 void startPacketReadTransfer(
unsigned count);
82 std::optional<CDXCommand> cdxCommand;
84 unsigned byteCountLimit;
85 unsigned transferOffset;
92 bool remMedStatNotifEnabled;
95 std::shared_ptr<CDInUse> cdInUse;
99 const std::string devName;
void execute(std::span< const TclObject > tokens, TclObject &result, EmuTime::param time) override
This is like the execute() method of the Command class, it only has an extra time parameter.
std::string help(std::span< const TclObject > tokens) const override
Print help for this command.
void tabCompletion(std::vector< std::string > &tokens) const override
Attempt tab completion for this command.
IDECDROM(const IDECDROM &)=delete
std::string_view getDeviceName() override
Gets the device name to insert as "model number" into the identify block.
void serialize(Archive &ar, unsigned version)
std::bitset< MAX_CD > CDInUse
IDECDROM & operator=(const IDECDROM &)=delete
unsigned readBlockStart(AlignedBuffer &buffer, unsigned count) override
Called when a block of read data should be buffered by the controller: when the buffer is empty or at...
void writeBlockComplete(AlignedBuffer &buffer, unsigned count) override
Called when a block of written data has been buffered by the controller: when the buffer is full or a...
void readEnd() override
Called when a read transfer completes.
IDECDROM(IDECDROM &&)=delete
void fillIdentifyBlock(AlignedBuffer &buffer) override
Tells a subclass to fill the device specific parts of the identify block located in the buffer.
static constexpr unsigned MAX_CD
void getMediaInfo(TclObject &result) override
This method gets called when information is required on the media inserted in the media slot of the p...
void executeCommand(byte cmd) override
Starts execution of an IDE command.
IDECDROM & operator=(IDECDROM &&)=delete
bool isPacketDevice() override
Is this device a packet (ATAPI) device?
static std::shared_ptr< CDInUse > getDrivesInUse(MSXMotherBoard &motherBoard)
void insert(const std::string &filename)
Commands that directly influence the MSX state should send and events so that they can be recorded by...
This file implemented 3 utility functions: