MCPcopy Create free account
hub / github.com/AppleWin/AppleWin / MemSaveSnapshotAux

Function MemSaveSnapshotAux

source/Memory.cpp:2962–3019  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2960}
2961
2962void MemSaveSnapshotAux(YamlSaveHelper& yamlSaveHelper)
2963{
2964 if (IS_APPLE2)
2965 {
2966 return; // No Aux slot for AppleII
2967 }
2968
2969 if (IS_APPLE2C())
2970 {
2971 _ASSERT(g_uMaxExBanks == 1);
2972 }
2973
2974 yamlSaveHelper.UnitHdr(MemGetSnapshotUnitAuxSlotName(), kUNIT_AUXSLOT_VER);
2975
2976 // Unit state
2977 {
2978 YamlSaveHelper::Label unitState(yamlSaveHelper, "%s:\n", SS_YAML_KEY_STATE);
2979
2980 const SS_CARDTYPE cardType = GetCardMgr().QueryAux();
2981 std::string card = cardType == CT_Empty ? Card::GetCardNameEmpty() :
2982 cardType == CT_80Col ? MemGetSnapshotCardName80Col() :
2983 cardType == CT_Extended80Col ? MemGetSnapshotCardNameExtended80Col() :
2984 cardType == CT_RamWorksIII ? MemGetSnapshotCardNameRamWorksIII() :
2985 "";
2986 _ASSERT(!card.empty());
2987
2988 yamlSaveHelper.SaveString(SS_YAML_KEY_CARD, card.c_str());
2989 yamlSaveHelper.Save("%s: %d\n", SS_YAML_KEY_VERSION, kUNIT_CARD_VER);
2990
2991 // Card state
2992 if (cardType == CT_80Col)
2993 {
2994 YamlSaveHelper::Label cardState(yamlSaveHelper, "%s:\n", SS_YAML_KEY_STATE);
2995
2996 // 1KiB memory
2997 {
2998 const UINT bank = 1;
2999 LPBYTE pMemBase = MemGetBankPtr(bank);
3000 YamlSaveHelper::Label state(yamlSaveHelper, "%s:\n", MemGetSnapshotAuxMemStructName().c_str());
3001 yamlSaveHelper.SaveMemory(pMemBase + TEXT_PAGE1_BEGIN, TEXT_PAGE1_SIZE);
3002 }
3003 }
3004 else if (cardType == CT_Extended80Col || cardType == CT_RamWorksIII)
3005 {
3006 YamlSaveHelper::Label cardState(yamlSaveHelper, "%s:\n", SS_YAML_KEY_STATE);
3007
3008 yamlSaveHelper.Save("%s: 0x%03X # [0,1..100] 0=no aux mem, 1=128K system, etc\n", SS_YAML_KEY_NUMAUXBANKS, g_uMaxExBanks);
3009 yamlSaveHelper.Save("%s: 0x%02X # [ 0..FF] 0=memaux\n", SS_YAML_KEY_ACTIVEAUXBANK, g_uActiveBank);
3010
3011 for(UINT bank = 1; bank <= g_uMaxExBanks; bank++)
3012 {
3013 MemSaveSnapshotMemory(yamlSaveHelper, false, bank);
3014 }
3015
3016 RGB_SaveSnapshot(yamlSaveHelper);
3017 }
3018 }
3019}

Callers 1

Snapshot_SaveStateFunction · 0.85

Calls 8

MemGetBankPtrFunction · 0.85
MemSaveSnapshotMemoryFunction · 0.85
RGB_SaveSnapshotFunction · 0.85
UnitHdrMethod · 0.80
QueryAuxMethod · 0.80
SaveStringMethod · 0.80
SaveMethod · 0.80
SaveMemoryMethod · 0.80

Tested by

no test coverage detected