mirror of
https://github.com/AppleWin/AppleWin.git
synced 2026-04-25 03:17:53 +00:00
NoSlotClock:
. added to save-state (v6) via a new unit type 'Miscellaneous' . added cmd line switch '-no-nsc' to configure AppleII without an NSC
This commit is contained in:
@@ -41,6 +41,7 @@ All the other drivers and utilities available to me don't define the DOW mapping
|
||||
|
||||
#include "StdAfx.h"
|
||||
#include "NoSlotClock.h"
|
||||
#include "YamlHelper.h"
|
||||
|
||||
CNoSlotClock::CNoSlotClock()
|
||||
:
|
||||
@@ -166,6 +167,45 @@ void CNoSlotClock::PopulateClockRegister()
|
||||
m_ClockRegister.WriteNibble(year / 10);
|
||||
}
|
||||
|
||||
#define SS_YAML_KEY_CLOCK_REGISTER_ENABLED "Clock Register Enabled"
|
||||
#define SS_YAML_KEY_WRITE_ENABLED "Write Enabled"
|
||||
#define SS_YAML_KEY_CLOCK_REGISTER_MASK "Clock Register Mask"
|
||||
#define SS_YAML_KEY_CLOCK_REGISTER "Clock Register"
|
||||
#define SS_YAML_KEY_COMPARISON_REGISTER_MASK "Comparison Register Mask"
|
||||
#define SS_YAML_KEY_COMPARISON_REGISTER "Comparison Register"
|
||||
|
||||
std::string CNoSlotClock::GetSnapshotStructName(void)
|
||||
{
|
||||
static const std::string name("No Slot Clock");
|
||||
return name;
|
||||
}
|
||||
|
||||
void CNoSlotClock::SaveSnapshot(YamlSaveHelper& yamlSaveHelper)
|
||||
{
|
||||
YamlSaveHelper::Label state(yamlSaveHelper, "%s:\n", GetSnapshotStructName().c_str());
|
||||
yamlSaveHelper.SaveBool(SS_YAML_KEY_CLOCK_REGISTER_ENABLED, m_bClockRegisterEnabled);
|
||||
yamlSaveHelper.SaveBool(SS_YAML_KEY_WRITE_ENABLED, m_bWriteEnabled);
|
||||
yamlSaveHelper.SaveHexUint64(SS_YAML_KEY_CLOCK_REGISTER_MASK, m_ClockRegister.m_Mask);
|
||||
yamlSaveHelper.SaveHexUint64(SS_YAML_KEY_CLOCK_REGISTER, m_ClockRegister.m_Register);
|
||||
yamlSaveHelper.SaveHexUint64(SS_YAML_KEY_COMPARISON_REGISTER_MASK, m_ComparisonRegister.m_Mask);
|
||||
yamlSaveHelper.SaveHexUint64(SS_YAML_KEY_COMPARISON_REGISTER, m_ComparisonRegister.m_Register);
|
||||
}
|
||||
|
||||
void CNoSlotClock::LoadSnapshot(YamlLoadHelper& yamlLoadHelper)
|
||||
{
|
||||
if (!yamlLoadHelper.GetSubMap(GetSnapshotStructName()))
|
||||
return;
|
||||
|
||||
m_bClockRegisterEnabled = yamlLoadHelper.LoadBool(SS_YAML_KEY_CLOCK_REGISTER_ENABLED);
|
||||
m_bWriteEnabled = yamlLoadHelper.LoadBool(SS_YAML_KEY_WRITE_ENABLED);
|
||||
m_ClockRegister.m_Mask = yamlLoadHelper.LoadUint64(SS_YAML_KEY_CLOCK_REGISTER_MASK);
|
||||
m_ClockRegister.m_Register = yamlLoadHelper.LoadUint64(SS_YAML_KEY_CLOCK_REGISTER);
|
||||
m_ComparisonRegister.m_Mask = yamlLoadHelper.LoadUint64(SS_YAML_KEY_COMPARISON_REGISTER_MASK);
|
||||
m_ComparisonRegister.m_Register = yamlLoadHelper.LoadUint64(SS_YAML_KEY_COMPARISON_REGISTER);
|
||||
|
||||
yamlLoadHelper.PopMap();
|
||||
}
|
||||
|
||||
CNoSlotClock::RingRegister64::RingRegister64()
|
||||
{
|
||||
Reset();
|
||||
|
||||
Reference in New Issue
Block a user