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

Method LoadSnapshot

source/Disk.cpp:2531–2602  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2529}
2530
2531bool Disk2InterfaceCard::LoadSnapshot(YamlLoadHelper& yamlLoadHelper, UINT version)
2532{
2533 if (version < 1 || version > kUNIT_VERSION)
2534 ThrowErrorInvalidVersion(version);
2535
2536 m_currDrive = yamlLoadHelper.LoadUint(SS_YAML_KEY_CURRENT_DRIVE);
2537 m_magnetStates = yamlLoadHelper.LoadUint(SS_YAML_KEY_PHASES);
2538 m_enhanceDisk = yamlLoadHelper.LoadBool(SS_YAML_KEY_ENHANCE_DISK);
2539 m_floppyLatch = yamlLoadHelper.LoadUint(SS_YAML_KEY_FLOPPY_LATCH);
2540 m_floppyMotorOn = yamlLoadHelper.LoadBool(SS_YAML_KEY_FLOPPY_MOTOR_ON);
2541
2542 if (version >= 2)
2543 {
2544 m_diskLastCycle = yamlLoadHelper.LoadUint64(SS_YAML_KEY_LAST_CYCLE);
2545 m_formatTrack.LoadSnapshot(yamlLoadHelper);
2546 }
2547
2548 if (version >= 3)
2549 {
2550 m_diskLastReadLatchCycle = yamlLoadHelper.LoadUint64(SS_YAML_KEY_LAST_READ_LATCH_CYCLE);
2551 }
2552
2553 if (version >= 4)
2554 {
2555 m_shiftReg = yamlLoadHelper.LoadUint(SS_YAML_KEY_LSS_SHIFT_REG) & 0xff;
2556 m_latchDelay = yamlLoadHelper.LoadInt(SS_YAML_KEY_LSS_LATCH_DELAY);
2557 }
2558
2559 if (version >= 4 && version <= 6)
2560 {
2561 (void) yamlLoadHelper.LoadBool(SS_YAML_KEY_LSS_RESET_SEQUENCER); // deprecated
2562 }
2563
2564 if (version >= 5)
2565 {
2566 m_seqFunc.function = (SEQFUNC) yamlLoadHelper.LoadInt(SS_YAML_KEY_LSS_SEQUENCER_FUNCTION);
2567 }
2568 else
2569 {
2570 m_seqFunc.writeMode = yamlLoadHelper.LoadBool(SS_YAML_KEY_FLOPPY_WRITE_MODE) ? 1 : 0;
2571 m_seqFunc.loadMode = 0; // Wasn't saved until v5
2572 }
2573
2574 if (version <= 6)
2575 {
2576 (void) yamlLoadHelper.LoadBool(SS_YAML_KEY_DISK_ACCESSED); // deprecated - but retrieve the value to avoid the "State: Unknown key (Disk Accessed)" warning
2577 }
2578
2579 if (version >= 8)
2580 {
2581 m_deferredStepperEvent = yamlLoadHelper.LoadBool(SS_YAML_KEY_DEFERRED_STEPPER_EVENT);
2582 m_deferredStepperAddress = yamlLoadHelper.LoadUint(SS_YAML_KEY_DEFERRED_STEPPER_ADDRESS);
2583 m_deferredStepperCumulativeCycles = yamlLoadHelper.LoadUint64(SS_YAML_KEY_DEFERRED_STEPPER_CYCLE);
2584 }
2585
2586 // Eject all disks first in case Drive-2 contains disk to be inserted into Drive-1
2587 for (UINT i=DRIVE_1; i<NUM_DRIVES; i++)
2588 {

Callers

nothing calls this directly

Calls 6

LoadUintMethod · 0.80
LoadBoolMethod · 0.80
LoadUint64Method · 0.80
LoadIntMethod · 0.80
FrameRefreshStatusMethod · 0.80
clearMethod · 0.45

Tested by

no test coverage detected