| 2529 | } |
| 2530 | |
| 2531 | bool 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 | { |
nothing calls this directly
no test coverage detected