mirror of
https://github.com/zoriya/ComSquare.git
synced 2026-05-06 21:27:12 +00:00
Merging origin/master
This commit is contained in:
@@ -19,25 +19,26 @@ namespace ComSquare::APU
|
||||
this->reset();
|
||||
}
|
||||
|
||||
bool APU::isDebugger()
|
||||
bool APU::isDebugger() const
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
std::string APU::getName()
|
||||
std::string APU::getName() const
|
||||
{
|
||||
return "APU";
|
||||
}
|
||||
|
||||
Component APU::getComponent()
|
||||
Component APU::getComponent() const
|
||||
{
|
||||
return Apu;
|
||||
}
|
||||
|
||||
uint8_t APU::_internalRead(uint24_t addr) {
|
||||
uint8_t APU::_internalRead(uint24_t addr) const
|
||||
{
|
||||
switch (addr) {
|
||||
case 0x0000 ... 0x00EF:
|
||||
return this->_map->Page0.read_internal(addr);
|
||||
return this->_map->Page0.read(addr);
|
||||
case 0xF0:
|
||||
return this->_registers.unknown;
|
||||
case 0xF2:
|
||||
@@ -63,9 +64,9 @@ namespace ComSquare::APU
|
||||
case 0xFF:
|
||||
return this->_registers.counter2;
|
||||
case 0x0100 ... 0x01FF:
|
||||
return this->_map->Page1.read_internal(addr - 0x0100);
|
||||
return this->_map->Page1.read(addr - 0x0100);
|
||||
case 0x0200 ... 0xFFBF:
|
||||
return this->_map->Memory.read_internal(addr - 0x200);
|
||||
return this->_map->Memory.read(addr - 0x200);
|
||||
case 0xFFC0 ... 0xFFFF:
|
||||
return this->_map->IPL.read(addr - 0xFFC0);
|
||||
default:
|
||||
@@ -73,10 +74,11 @@ namespace ComSquare::APU
|
||||
}
|
||||
}
|
||||
|
||||
void APU::_internalWrite(uint24_t addr, uint8_t data) {
|
||||
void APU::_internalWrite(uint24_t addr, uint8_t data)
|
||||
{
|
||||
switch (addr) {
|
||||
case 0x0000 ... 0x00EF:
|
||||
this->_map->Page0.write_internal(addr, data);
|
||||
this->_map->Page0.write(addr, data);
|
||||
break;
|
||||
case 0xF0:
|
||||
this->_registers.unknown = data;
|
||||
@@ -118,10 +120,10 @@ namespace ComSquare::APU
|
||||
this->_registers.timer2 = data;
|
||||
break;
|
||||
case 0x0100 ... 0x01FF:
|
||||
this->_map->Page1.write_internal(addr - 0x0100, data);
|
||||
this->_map->Page1.write(addr - 0x0100, data);
|
||||
break;
|
||||
case 0x0200 ... 0xFFBF:
|
||||
this->_map->Memory.write_internal(addr - 0x200, data);
|
||||
this->_map->Memory.write(addr - 0x200, data);
|
||||
break;
|
||||
case 0xFFC0 ... 0xFFFF:
|
||||
this->_map->IPL.write(addr - 0xFFC0, data);
|
||||
@@ -131,7 +133,7 @@ namespace ComSquare::APU
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t APU::read(uint24_t addr)
|
||||
uint8_t APU::read(uint24_t addr) const
|
||||
{
|
||||
switch (addr) {
|
||||
case 0x00:
|
||||
@@ -167,6 +169,11 @@ namespace ComSquare::APU
|
||||
}
|
||||
}
|
||||
|
||||
uint24_t APU::getSize() const
|
||||
{
|
||||
return 0x3;
|
||||
}
|
||||
|
||||
void APU::reset()
|
||||
{
|
||||
this->_registers.port0 = 0x00;
|
||||
|
||||
Reference in New Issue
Block a user