Plus 3 mode fully working. Added Plus 3 keyboard

This commit is contained in:
2026-04-30 15:42:54 +01:00
parent d90537de59
commit bc2748250d
5 changed files with 67 additions and 21 deletions

View File

@@ -73,28 +73,40 @@ namespace Core.Io
// Bit 3 handles the cassette MIC output
}
// 128K Standard Paging Port (0x7FFD)
if ((portAddress & 0x8002) == 0)
// Mask 0xC002 checks A15=0, A14=1, A1=0 to prevent 0x1FFD from triggering this!
if ((portAddress & 0xC002) == 0x4000)
{
_memory.HandlePaging(0x7FFD, portValue);
}
// +2A/+3 Extended Paging Port (0x1FFD)
if ((portAddress & 0xF002) == 0x1000)
// Mask 0xF002 checks A15=0, A14=0, A13=0, A12=1, A1=0
else if ((portAddress & 0xF002) == 0x1000)
{
_memory.HandlePaging(0x1FFD, portValue);
}
// AY-3-8912 Register Select (Port 0xFFFD)
if ((portAddress & 0xC002) == 0xC000)
{
AyChip.SelectRegister(portValue);
}
// AY-3-8912 Data Write (Port 0xBFFD)
else if ((portAddress & 0xC002) == 0x8000)
{
AyChip.WriteRegister(portValue);
}
//// 128K Standard Paging Port (0x7FFD)
//if ((portAddress & 0x8002) == 0)
//{
// _memory.HandlePaging(0x7FFD, portValue);
//}
//// +2A/+3 Extended Paging Port (0x1FFD)
//if ((portAddress & 0xF002) == 0x1000)
//{
// _memory.HandlePaging(0x1FFD, portValue);
//}
//// AY-3-8912 Register Select (Port 0xFFFD)
//if ((portAddress & 0xC002) == 0xC000)
//{
// AyChip.SelectRegister(portValue);
//}
//// AY-3-8912 Data Write (Port 0xBFFD)
//else if ((portAddress & 0xC002) == 0x8000)
//{
// AyChip.WriteRegister(portValue);
//}
}
}
}