commit 0af0236eb7921a4d6f46b4fb11faa6801af81165
parent f95077026497c0208d43f7667c84ff7ecf278fab
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Sun, 21 Jul 2024 02:38:23 +0200
attempt to press a button on the frontpanel
Diffstat:
2 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/source/nord/n2x/n2xLib/n2xfrontpanel.cpp b/source/nord/n2x/n2xLib/n2xfrontpanel.cpp
@@ -13,6 +13,13 @@ namespace n2x
{
}
+ uint8_t FrontPanelCS4::read8(mc68k::PeriphAddress _addr)
+ {
+ return 0xff;
+
+ return FrontPanelCS<2107392>::read8(_addr);
+ }
+
FrontPanelCS4::FrontPanelCS4(FrontPanel& _fp) : FrontPanelCS(_fp)
{
}
@@ -87,6 +94,29 @@ namespace n2x
FrontPanelCS<2105344>::write8(_addr, _val);
}
+ static uint8_t g_counter = 0;
+
+ uint8_t FrontPanelCS6::read8(mc68k::PeriphAddress _addr)
+ {
+ const auto a = static_cast<uint32_t>(_addr);
+ switch (a)
+ {
+ case g_frontPanelAddressCS6:
+ return 0b11101100;
+ if(++g_counter >= 128)
+ {
+ const auto up = static_cast<uint8_t>(ButtonType::Up) & 0xff;
+ return ~up;
+ }
+ return 0xff;
+ case g_frontPanelAddressCS6 + 2:
+ case g_frontPanelAddressCS6 + 4:
+ case g_frontPanelAddressCS6 + 6:
+ return 0xff;
+ }
+ return FrontPanelCS::read8(_addr);
+ }
+
void FrontPanelCS6::printLCD()
{
/*
diff --git a/source/nord/n2x/n2xLib/n2xfrontpanel.h b/source/nord/n2x/n2xLib/n2xfrontpanel.h
@@ -20,6 +20,7 @@ namespace n2x
class FrontPanelCS4 : public FrontPanelCS<g_frontPanelAddressCS4>
{
public:
+ uint8_t read8(mc68k::PeriphAddress _addr) override;
explicit FrontPanelCS4(FrontPanel& _fp);
};
@@ -29,6 +30,7 @@ namespace n2x
explicit FrontPanelCS6(FrontPanel& _fp);
void write8(mc68k::PeriphAddress _addr, uint8_t _val) override;
+ uint8_t read8(mc68k::PeriphAddress _addr) override;
private:
void printLCD();