36 void execute(std::span<const TclObject> tokens,
37 TclObject& result, EmuTime::param time)
override;
38 [[nodiscard]] std::string
help(std::span<const TclObject> tokens)
const override;
39 void tabCompletion(std::vector<std::string>& tokens)
const override;
59 template<
typename Archive>
60 void serialize(Archive& ar,
unsigned version);
65 std::span<SectorBuffer> buffers,
size_t startSector)
override;
66 void writeSectorImpl(
size_t sector,
const SectorBuffer& buf)
override;
67 [[nodiscard]]
size_t getNbSectorsImpl()
const override;
68 [[nodiscard]]
bool isWriteProtectedImpl()
const override;
73 [[nodiscard]] std::string_view getContainerName()
const override;
74 [[nodiscard]]
bool diskChanged()
override;
75 int insertDisk(
const std::string& filename)
override;
78 void reset()
override;
79 [[nodiscard]]
bool isSelected()
override;
80 [[nodiscard]]
unsigned executeCmd(std::span<const uint8_t, 12> cdb,
SCSI::Phase& phase,
unsigned& blocks)
override;
81 [[nodiscard]]
unsigned executingCmd(
SCSI::Phase& phase,
unsigned& blocks)
override;
82 [[nodiscard]] uint8_t getStatusCode()
override;
83 int msgOut(uint8_t value)
override;
84 uint8_t msgIn()
override;
85 void disconnect()
override;
86 void busReset()
override;
87 [[nodiscard]]
unsigned dataIn(
unsigned& blocks)
override;
88 [[nodiscard]]
unsigned dataOut(
unsigned& blocks)
override;
91 void insert(
const std::string& filename);
93 [[nodiscard]]
bool getReady();
96 [[nodiscard]]
unsigned inquiry();
97 [[nodiscard]]
unsigned modeSense();
98 [[nodiscard]]
unsigned requestSense();
99 [[nodiscard]]
bool checkReadOnly();
100 [[nodiscard]]
unsigned readCapacity();
101 [[nodiscard]]
bool checkAddress();
102 [[nodiscard]]
unsigned readSector(
unsigned& blocks);
103 [[nodiscard]]
unsigned writeSector(
unsigned& blocks);
110 std::optional<LSXCommand> lsxCommand;
114 unsigned currentSector;
115 unsigned currentLength;
116 const uint8_t scsiId;
121 std::array<uint8_t, 12> cdb;
123 static constexpr unsigned MAX_LS = 26;
124 using LSInUse = std::bitset<MAX_LS>;
125 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.
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 operator=(SCSILS120 &&)=delete
void getMediaInfo(TclObject &result) override
This method gets called when information is required on the media inserted in the media slot of the p...
SCSILS120(const SCSILS120 &)=delete
SCSILS120(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: