#pragma once #include "IOValues/periphery_io_values.hpp" namespace JabyEngine { namespace Periphery_IO { struct JOY_STAT_IO : public IOPort { inline bool has_response() const { return this->read().is_set(Periphery_IO_Values::JOY_STAT::RXFifoNonEmpty); } inline bool is_ready_transfer() const { return this->read().is_set(Periphery_IO_Values::JOY_STAT::TXReadyFinished); } }; using JOY_BAUD_IO = IOPort; using JOY_CTRL_IO = IOPort; using JOY_MODE_IO = IOPort; using JOY_RX_DATA_IO = IOPort; using JOY_TX_DATA_IO = IOPort; static auto& JOY_TX_DATA = __declare_io_port(JOY_TX_DATA_IO, 0x1F801040); static const auto& JOY_RX_DATA = __declare_io_port(JOY_RX_DATA_IO, 0x1F801040); static const auto& JOY_STAT = __declare_io_port(JOY_STAT_IO, 0x1F801044); static auto& JOY_MODE = __declare_io_port(JOY_MODE_IO, 0x1F801048); static auto& JOY_CTRL = __declare_io_port(JOY_CTRL_IO, 0x1F80104A); static auto& JOY_BAUD = __declare_io_port(JOY_BAUD_IO, 0x1F80104E); } }