getting conditional branch now
This commit is contained in:
@@ -35,6 +35,7 @@ void mem::set(const ircolib::u8 val, const ircolib::u32 size, const ircolib::u32
|
||||
memset(&mem1[offset], val, size);
|
||||
}
|
||||
|
||||
template <>
|
||||
ircolib::u32 mem::read(ircolib::u32 addr) {
|
||||
addr &= 0x0FFFFFFF;
|
||||
if (addr > 0x017FFFFF)
|
||||
@@ -43,6 +44,15 @@ ircolib::u32 mem::read(ircolib::u32 addr) {
|
||||
return ircolib::read_access<ircolib::u32>(mem1, addr);
|
||||
}
|
||||
|
||||
template <>
|
||||
ircolib::u16 mem::read(ircolib::u32 addr) {
|
||||
addr &= 0x0FFFFFFF;
|
||||
if (addr > 0x017FFFFF)
|
||||
ircolib::panic("mem::read unimplemented outside mem1 (0x{:08X})", addr);
|
||||
|
||||
return ircolib::read_access<ircolib::u16>(mem1, addr);
|
||||
}
|
||||
|
||||
void mem::write(ircolib::u32 addr, ircolib::u32 value) {
|
||||
addr &= 0x0FFFFFFF;
|
||||
if (addr > 0x017FFFFF)
|
||||
@@ -50,4 +60,17 @@ void mem::write(ircolib::u32 addr, ircolib::u32 value) {
|
||||
|
||||
ircolib::write_access<ircolib::u32>(mem1, addr, value);
|
||||
}
|
||||
|
||||
void mem::write(ircolib::u32 addr, ircolib::u16 value) {
|
||||
addr &= 0x0FFFFFFF;
|
||||
if (addr > 0x017FFFFF && !ircolib::is_inside_range(addr, 0x0C002000, 0x0C0020FF))
|
||||
ircolib::panic("mem::write unimplemented outside mem1 and vi (0x{:08X} = 0x{:08X})", addr, value);
|
||||
|
||||
if (addr <= 0x017FFFFF) {
|
||||
ircolib::write_access<ircolib::u16>(mem1, addr, value);
|
||||
return;
|
||||
}
|
||||
|
||||
vi.write(addr, value);
|
||||
}
|
||||
} // namespace weee::core
|
||||
|
||||
Reference in New Issue
Block a user