22 void execute(std::span<const TclObject> tokens,
23 TclObject& result, EmuTime::param time)
override;
24 [[nodiscard]] std::string
help(std::span<const TclObject> tokens)
const override;
25 void tabCompletion(std::vector<std::string>& tokens)
const override;
42 template<
typename Archive>
43 void serialize(Archive& ar,
unsigned version);
58 static constexpr
byte REL = 0x04;
60 static constexpr
byte I_O = 0x02;
62 static constexpr
byte C_D = 0x01;
67 void startPacketReadTransfer(
unsigned count);
72 std::optional<CDXCommand> cdxCommand;
74 unsigned byteCountLimit;
75 unsigned transferOffset;
82 bool remMedStatNotifEnabled;
85 static constexpr
unsigned MAX_CD = 26;
86 using CDInUse = std::bitset<MAX_CD>;
87 std::shared_ptr<CDInUse> cdInUse;
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.
CDXCommand(CommandController &commandController, StateChangeDistributor &stateChangeDistributor, Scheduler &scheduler, IDECDROM &cd)
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)
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.
void fillIdentifyBlock(AlignedBuffer &buffer) override
Tells a subclass to fill the device specific parts of the identify block located in the buffer.
IDECDROM & operator=(const IDECDROM &)=delete
void executeCommand(byte cmd) override
Starts execution of an IDE command.
bool isPacketDevice() override
Is this device a packet (ATAPI) device?
void insert(const std::string &filename)
Commands that directly influence the MSX state should send and events so that they can be recorded by...
ALWAYS_INLINE unsigned count(const uint8_t *pIn, const uint8_t *pMatch, const uint8_t *pInLimit)
This file implemented 3 utility functions:
constexpr const char *const filename