Convert CD IO
This commit is contained in:
@@ -29,12 +29,12 @@ namespace JabyEngine {
|
||||
|
||||
template<typename...ARGS>
|
||||
static void send_no_wait(CD_IO::Command::Desc cmd, ARGS...args) {
|
||||
while(CD_IO::IndexStatus.read().is_set(CD_IO::IndexStatus::IsTransmissionBusy));
|
||||
while(CD_IO::IndexStatus.read().is_set(CD_IO_Values::IndexStatus::IsTransmissionBusy));
|
||||
|
||||
irq_bit_pending = bit::set(irq_bit_pending, cmd.complete_irq);
|
||||
CD_IO::PortIndex0::change_to();
|
||||
((CD_IO::PortIndex0::ParameterFifo.write(CD_IO::ParameterFifo{args})),...);
|
||||
CD_IO::PortIndex0::CommandFifo.write(CD_IO::CommandFifo{cmd.id});
|
||||
((CD_IO::PortIndex0::ParameterFifo.write(CD_IO_Values::ParameterFifo{args})),...);
|
||||
CD_IO::PortIndex0::CommandFifo.write(CD_IO_Values::CommandFifo{cmd.id});
|
||||
}
|
||||
|
||||
template<typename...ARGS>
|
||||
|
@@ -36,9 +36,9 @@ namespace JabyEngine {
|
||||
}
|
||||
};
|
||||
|
||||
static constexpr auto AudioSectorMode = CD_IO::Mode::from(CD_IO::Mode::SingleSpeed, CD_IO::Mode::AutoPauseTrack, CD_IO::Mode::CDDA);
|
||||
static constexpr auto DataSectorMode = CD_IO::Mode::from(CD_IO::Mode::DoubleSpeed, CD_IO::Mode::DataSector);
|
||||
static constexpr auto XAAudioSectorMode = CD_IO::Mode::from(CD_IO::Mode::SingleSpeed, CD_IO::Mode::XADPCM, CD_IO::Mode::WholeSector, CD_IO::Mode::UseXAFilter);
|
||||
static constexpr auto AudioSectorMode = CD_IO_Values::Mode::from(CD_IO_Values::Mode::SingleSpeed, CD_IO_Values::Mode::AutoPauseTrack, CD_IO_Values::Mode::CDDA);
|
||||
static constexpr auto DataSectorMode = CD_IO_Values::Mode::from(CD_IO_Values::Mode::DoubleSpeed, CD_IO_Values::Mode::DataSector);
|
||||
static constexpr auto XAAudioSectorMode = CD_IO_Values::Mode::from(CD_IO_Values::Mode::SingleSpeed, CD_IO_Values::Mode::XADPCM, CD_IO_Values::Mode::WholeSector, CD_IO_Values::Mode::UseXAFilter);
|
||||
|
||||
namespace IRQ {
|
||||
static SysCall::InterruptVerifierResult verifier();
|
||||
@@ -69,7 +69,7 @@ namespace JabyEngine {
|
||||
namespace IRQ {
|
||||
static void read_sector_dma0(uint32_t* dst, size_t bytes) {
|
||||
static const auto WaitSectorReady = []() {
|
||||
while(!CD_IO::IndexStatus.read().is_set(CD_IO::IndexStatus::HasDataFifoData));
|
||||
while(!CD_IO::IndexStatus.read().is_set(CD_IO_Values::IndexStatus::HasDataFifoData));
|
||||
};
|
||||
|
||||
static const auto ReadSector = [](uint32_t* dst, size_t bytes) {
|
||||
@@ -80,7 +80,7 @@ namespace JabyEngine {
|
||||
DMA_IO::CDROM.wait();
|
||||
CD_IO::PortIndex0::change_to();
|
||||
|
||||
CD_IO::PortIndex0::Request.write(CD_IO::Request::reset());
|
||||
CD_IO::PortIndex0::Request.write(CD_IO_Values::Request::reset());
|
||||
};
|
||||
|
||||
WaitSectorReady();
|
||||
@@ -124,7 +124,7 @@ namespace JabyEngine {
|
||||
|
||||
CD_IO::PortIndex0::change_to();
|
||||
if(cur_irq == CD_IO::Interrupt::DataReady) {
|
||||
CD_IO::PortIndex0::Request.write(CD_IO::Request::want_data());
|
||||
CD_IO::PortIndex0::Request.write(CD_IO_Values::Request::want_data());
|
||||
}
|
||||
|
||||
// No masking required because we can only write bit 0 - 2
|
||||
@@ -228,7 +228,7 @@ namespace JabyEngine {
|
||||
|
||||
void enable_CDXA(bool double_speed) {
|
||||
static constexpr uint8_t SingleSpeedBit = 0x0;
|
||||
static constexpr uint8_t DoubleSpeedBit = static_cast<uint8_t>(CD_IO::Mode::DoubleSpeed);
|
||||
static constexpr uint8_t DoubleSpeedBit = static_cast<uint8_t>(CD_IO_Values::Mode::DoubleSpeed);
|
||||
|
||||
const uint8_t mode = XAAudioSectorMode.raw | (double_speed ? DoubleSpeedBit : SingleSpeedBit);
|
||||
|
||||
|
Reference in New Issue
Block a user