Prepare setup of CD drive
This commit is contained in:
@@ -31,6 +31,7 @@ namespace JabyEngine {
|
||||
|
||||
struct InterruptEnable : public ComplexBitMap<uint8_t> {
|
||||
static constexpr auto InterruptTypValue = BitRange<uint8_t>::from_to(0, 2);
|
||||
static constexpr auto InterruptExtended = BitRange<uint8_t>::from_to(0, 4);
|
||||
static constexpr auto UnknownIRQ = Bit<uint8_t>(3);
|
||||
static constexpr auto CommandStartIRQ = Bit<uint8_t>(4);
|
||||
};
|
||||
@@ -57,7 +58,11 @@ namespace JabyEngine {
|
||||
};
|
||||
|
||||
struct Interrupt {
|
||||
static void enable_all(VolatileBitMapPOD<InterruptEnable>& port) {
|
||||
static void enable(VolatileBitMapPOD<InterruptEnable>& port) {
|
||||
port.write(InterruptEnable::InterruptTypValue.max());
|
||||
}
|
||||
|
||||
static void enable_extended(VolatileBitMapPOD<InterruptEnable>& port) {
|
||||
port.write({InterruptEnable::with(InterruptEnable::InterruptTypValue.max(), InterruptEnable::UnknownIRQ, InterruptEnable::CommandStartIRQ)});
|
||||
}
|
||||
|
||||
@@ -68,6 +73,10 @@ namespace JabyEngine {
|
||||
static void ack(VolatileBitMapPOD<InterruptFlag>& port) {
|
||||
port.write(InterruptFlag::InterruptTypValue.max());
|
||||
}
|
||||
|
||||
static void ack_extended(VolatileBitMapPOD<InterruptFlag>& port) {
|
||||
port.write({InterruptFlag::with(InterruptFlag::InterruptTypValue.max(), InterruptEnable::UnknownIRQ, InterruptEnable::CommandStartIRQ)});
|
||||
}
|
||||
};
|
||||
|
||||
__declare_io_port_global(IndexStatus_t, IndexStatus, 0x1F801800);
|
||||
|
24
include/PSX/System/IOPorts/memory_io.hpp
Normal file
24
include/PSX/System/IOPorts/memory_io.hpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#ifndef __JABYENGINE_MEMORY_IO_HPP__
|
||||
#define __JABYENGINE_MEMORY_IO_HPP__
|
||||
#include "ioport.hpp"
|
||||
|
||||
namespace JabyEngine {
|
||||
namespace Memory_IO {
|
||||
struct COM_DELAY {
|
||||
typedef uint32_t Type;
|
||||
|
||||
static constexpr uint32_t SetupValue = 0x1325;
|
||||
};
|
||||
|
||||
struct CD_DELAY {
|
||||
typedef uint32_t Type;
|
||||
|
||||
static constexpr uint32_t SetupValue = 0x20943;
|
||||
};
|
||||
|
||||
__declare_io_port_global_simple(COM_DELAY::Type, COM_DELAY, 0x1F801020);
|
||||
__declare_io_port_global_simple(CD_DELAY::Type, CD_DELAY, 0x1F801018);
|
||||
}
|
||||
}
|
||||
|
||||
#endif //!__JABYENGINE_MEMORY_IO_HPP__
|
Reference in New Issue
Block a user