Dummy load options for joystick and serial card to avoid warning on the screen.

Signed-off-by: Andrea Odetti <mariofutire@gmail.com>
This commit is contained in:
Andrea Odetti 2020-07-11 18:42:11 +01:00
parent 9afb9c631f
commit 5e2025d36c
2 changed files with 105 additions and 2 deletions

View file

@ -11,6 +11,28 @@ void JoySaveSnapshot(YamlSaveHelper&)
{
}
void JoyLoadSnapshot(YamlLoadHelper&)
#define SS_YAML_KEY_COUNTERRESETCYCLE "Counter Reset Cycle"
#define SS_YAML_KEY_JOY0TRIMX "Joystick0 TrimX"
#define SS_YAML_KEY_JOY0TRIMY "Joystick0 TrimY"
#define SS_YAML_KEY_JOY1TRIMX "Joystick1 TrimX"
#define SS_YAML_KEY_JOY1TRIMY "Joystick1 TrimY"
static std::string JoyGetSnapshotStructName(void)
{
static const std::string name("Joystick");
return name;
}
void JoyLoadSnapshot(YamlLoadHelper& yamlLoadHelper)
{
if (!yamlLoadHelper.GetSubMap(JoyGetSnapshotStructName()))
return;
yamlLoadHelper.LoadUint64(SS_YAML_KEY_COUNTERRESETCYCLE);
yamlLoadHelper.LoadInt(SS_YAML_KEY_JOY0TRIMX);
yamlLoadHelper.LoadInt(SS_YAML_KEY_JOY0TRIMY);
yamlLoadHelper.LoadInt(SS_YAML_KEY_JOY1TRIMX); // dump value
yamlLoadHelper.LoadInt(SS_YAML_KEY_JOY1TRIMY); // dump value
yamlLoadHelper.PopMap();
}

View file

@ -2,6 +2,7 @@
#include "Common.h"
#include "SerialComms.h"
#include "YamlHelper.h"
CSuperSerialCard::CSuperSerialCard(UINT slot) :
@ -21,8 +22,88 @@ void CSuperSerialCard::CommInitialize(LPBYTE pCxRomPeripheral, UINT uSlot)
{
}
bool CSuperSerialCard::LoadSnapshot(YamlLoadHelper&, unsigned int, unsigned int)
// Unit version history:
// 2: Added: Support DCD flag
// Removed: redundant data (encapsulated in Command & Control bytes)
static const UINT kUNIT_VERSION = 2;
#define SS_YAML_VALUE_CARD_SSC "Super Serial Card"
#define SS_YAML_KEY_DIPSWDEFAULT "DIPSW Default"
#define SS_YAML_KEY_DIPSWCURRENT "DIPSW Current"
#define SS_YAML_KEY_BAUDRATE "Baud Rate"
#define SS_YAML_KEY_FWMODE "Firmware mode"
#define SS_YAML_KEY_STOPBITS "Stop Bits"
#define SS_YAML_KEY_BYTESIZE "Byte Size"
#define SS_YAML_KEY_PARITY "Parity"
#define SS_YAML_KEY_LINEFEED "Linefeed"
#define SS_YAML_KEY_INTERRUPTS "Interrupts"
#define SS_YAML_KEY_CONTROL "Control Byte"
#define SS_YAML_KEY_COMMAND "Command Byte"
#define SS_YAML_KEY_INACTIVITY "Comm Inactivity"
#define SS_YAML_KEY_TXIRQENABLED "TX IRQ Enabled"
#define SS_YAML_KEY_RXIRQENABLED "RX IRQ Enabled"
#define SS_YAML_KEY_TXIRQPENDING "TX IRQ Pending"
#define SS_YAML_KEY_RXIRQPENDING "RX IRQ Pending"
#define SS_YAML_KEY_WRITTENTX "Written TX"
#define SS_YAML_KEY_SERIALPORTNAME "Serial Port Name"
#define SS_YAML_KEY_SUPPORT_DCD "Support DCD"
void CSuperSerialCard::LoadSnapshotDIPSW(YamlLoadHelper& yamlLoadHelper, std::string key, SSC_DIPSW& dipsw)
{
if (!yamlLoadHelper.GetSubMap(key))
throw std::string("Card: Expected key: " + key);
yamlLoadHelper.LoadUint(SS_YAML_KEY_BAUDRATE);
yamlLoadHelper.LoadUint(SS_YAML_KEY_FWMODE);
yamlLoadHelper.LoadUint(SS_YAML_KEY_STOPBITS);
yamlLoadHelper.LoadUint(SS_YAML_KEY_BYTESIZE);
yamlLoadHelper.LoadUint(SS_YAML_KEY_PARITY);
yamlLoadHelper.LoadBool(SS_YAML_KEY_LINEFEED);
yamlLoadHelper.LoadBool(SS_YAML_KEY_INTERRUPTS);
yamlLoadHelper.PopMap();
}
bool CSuperSerialCard::LoadSnapshot(YamlLoadHelper& yamlLoadHelper, UINT slot, UINT version)
{
if (slot != 2) // fixme
throw std::string("Card: wrong slot");
if (version < 1 || version > kUNIT_VERSION)
throw std::string("Card: wrong version");
SSC_DIPSW dipsw;
LoadSnapshotDIPSW(yamlLoadHelper, SS_YAML_KEY_DIPSWDEFAULT, dipsw);
LoadSnapshotDIPSW(yamlLoadHelper, SS_YAML_KEY_DIPSWCURRENT, dipsw);
if (version == 1) // Consume redundant/obsolete data
{
yamlLoadHelper.LoadUint(SS_YAML_KEY_PARITY); // Redundant: derived from uCommandByte in UpdateCommandReg()
yamlLoadHelper.LoadBool(SS_YAML_KEY_TXIRQENABLED); // Redundant: derived from uCommandByte in UpdateCommandReg()
yamlLoadHelper.LoadBool(SS_YAML_KEY_RXIRQENABLED); // Redundant: derived from uCommandByte in UpdateCommandReg()
yamlLoadHelper.LoadUint(SS_YAML_KEY_BAUDRATE); // Redundant: derived from uControlByte in UpdateControlReg()
yamlLoadHelper.LoadUint(SS_YAML_KEY_STOPBITS); // Redundant: derived from uControlByte in UpdateControlReg()
yamlLoadHelper.LoadUint(SS_YAML_KEY_BYTESIZE); // Redundant: derived from uControlByte in UpdateControlReg()
yamlLoadHelper.LoadUint(SS_YAML_KEY_INACTIVITY); // Obsolete (so just consume)
}
else if (version >= 2)
{
yamlLoadHelper.LoadBool(SS_YAML_KEY_SUPPORT_DCD);
}
yamlLoadHelper.LoadUint(SS_YAML_KEY_COMMAND);
yamlLoadHelper.LoadUint(SS_YAML_KEY_CONTROL);
yamlLoadHelper.LoadBool(SS_YAML_KEY_TXIRQPENDING);
yamlLoadHelper.LoadBool(SS_YAML_KEY_RXIRQPENDING);
yamlLoadHelper.LoadBool(SS_YAML_KEY_WRITTENTX);
yamlLoadHelper.LoadString(SS_YAML_KEY_SERIALPORTNAME);
return true;
}