diff --git a/src/Library/internal-include/CD/cd_internal.hpp b/src/Library/internal-include/CD/cd_internal.hpp index f0f11b67..0c57fadc 100644 --- a/src/Library/internal-include/CD/cd_internal.hpp +++ b/src/Library/internal-include/CD/cd_internal.hpp @@ -28,9 +28,7 @@ namespace JabyEngine { } template - static void send(CD_IO::Command::Desc cmd, ARGS...args) { - Command::wait_completed(); - + static void send_no_wait(CD_IO::Command::Desc cmd, ARGS...args) { while(CD_IO::IndexStatus.read().is_set(CD_IO::IndexStatus::IsTransmissionBusy)); irq_bit_pending = bit::set(irq_bit_pending, cmd.complete_irq); @@ -39,6 +37,12 @@ namespace JabyEngine { CD_IO::PortIndex0::CommandFifo.write(CD_IO::CommandFifo{cmd.id}); } + template + static void send(CD_IO::Command::Desc cmd, ARGS...args) { + Command::wait_completed(); + Command::send_no_wait(cmd, args...); + } + template static void send_wait_response(CD_IO::Command::Desc cmd, ARGS...args) { Command::send(cmd, args...);