33 void execute(std::span<const TclObject> tokens,
34 TclObject& result, EmuTime::param time)
override;
35 [[nodiscard]] std::string
help(std::span<const TclObject> tokens)
const override;
36 void tabCompletion(std::vector<std::string>& tokens)
const override;
52 template<
typename Archive>
53 void serialize(Archive& ar,
unsigned version);
58 SectorBuffer* buffers,
size_t startSector,
size_t num)
override;
59 void writeSectorImpl(
size_t sector,
const SectorBuffer& buf)
override;
60 [[nodiscard]]
size_t getNbSectorsImpl()
const override;
61 [[nodiscard]]
bool isWriteProtectedImpl()
const override;
66 [[nodiscard]] std::string_view getContainerName()
const override;
67 [[nodiscard]]
bool diskChanged()
override;
68 int insertDisk(
const std::string&
filename)
override;
71 void reset()
override;
72 [[nodiscard]]
bool isSelected()
override;
73 [[nodiscard]]
unsigned executeCmd(
const byte* cdb,
SCSI::Phase& phase,
unsigned& blocks)
override;
74 [[nodiscard]]
unsigned executingCmd(
SCSI::Phase& phase,
unsigned& blocks)
override;
75 [[nodiscard]]
byte getStatusCode()
override;
76 int msgOut(
byte value)
override;
77 byte msgIn()
override;
78 void disconnect()
override;
79 void busReset()
override;
80 [[nodiscard]]
unsigned dataIn(
unsigned& blocks)
override;
81 [[nodiscard]]
unsigned dataOut(
unsigned& blocks)
override;
84 void insert(
const std::string&
filename);
86 [[nodiscard]]
bool getReady();
89 [[nodiscard]]
unsigned inquiry();
90 [[nodiscard]]
unsigned modeSense();
91 [[nodiscard]]
unsigned requestSense();
92 [[nodiscard]]
bool checkReadOnly();
93 [[nodiscard]]
unsigned readCapacity();
94 [[nodiscard]]
bool checkAddress();
95 [[nodiscard]]
unsigned readSector(
unsigned& blocks);
96 [[nodiscard]]
unsigned writeSector(
unsigned& blocks);
103 std::optional<LSXCommand> lsxCommand;
107 unsigned currentSector;
108 unsigned currentLength;
116 static constexpr
unsigned MAX_LS = 26;
117 using LSInUse = std::bitset<MAX_LS>;
118 std::shared_ptr<LSInUse> lsInUse;
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.
void tabCompletion(std::vector< std::string > &tokens) const override
Attempt tab completion for this command.
LSXCommand(CommandController &commandController, StateChangeDistributor &stateChangeDistributor, Scheduler &scheduler, SCSILS120 &ls)
std::string help(std::span< const TclObject > tokens) const override
Print help for this command.
Commands that directly influence the MSX state should send and events so that they can be recorded by...
SCSILS120 operator=(const SCSILS120 &)=delete
SCSILS120(const SCSILS120 &)=delete
void serialize(Archive &ar, unsigned version)
This class represents the result of a sha1 calculation (a 160-bit value).
This file implemented 3 utility functions:
constexpr const char *const filename