| 2464 | } |
| 2465 | |
| 2466 | bool Disk2InterfaceCard::LoadSnapshotDriveUnitv4(YamlLoadHelper& yamlLoadHelper, UINT unit, UINT version, std::vector<BYTE>& track) |
| 2467 | { |
| 2468 | _ASSERT(version >= 4); |
| 2469 | |
| 2470 | std::string disk2UnitName = std::string(SS_YAML_KEY_DISK2UNIT) + (unit == DRIVE_1 ? std::string("0") : std::string("1")); |
| 2471 | if (!yamlLoadHelper.GetSubMap(disk2UnitName)) |
| 2472 | throw std::runtime_error("Card: Expected key: " + disk2UnitName); |
| 2473 | |
| 2474 | if (!yamlLoadHelper.GetSubMap(SS_YAML_KEY_FLOPPY)) |
| 2475 | throw std::runtime_error("Card: Expected key: " SS_YAML_KEY_FLOPPY); |
| 2476 | |
| 2477 | bool bImageError = LoadSnapshotFloppy(yamlLoadHelper, unit, version, track); |
| 2478 | |
| 2479 | yamlLoadHelper.PopMap(); |
| 2480 | |
| 2481 | // |
| 2482 | |
| 2483 | m_floppyDrive[unit].m_phase = yamlLoadHelper.LoadUint(SS_YAML_KEY_PHASE); |
| 2484 | m_floppyDrive[unit].m_phasePrecise = yamlLoadHelper.LoadFloat(SS_YAML_KEY_PHASE_PRECISE); |
| 2485 | m_floppyDrive[unit].m_headWindow = yamlLoadHelper.LoadUint(SS_YAML_KEY_HEAD_WINDOW) & 0xf; |
| 2486 | m_floppyDrive[unit].m_lastStepperCycle = yamlLoadHelper.LoadUint64(SS_YAML_KEY_LAST_STEPPER_CYCLE); |
| 2487 | m_floppyDrive[unit].m_spinning = yamlLoadHelper.LoadUint(SS_YAML_KEY_SPINNING); |
| 2488 | m_floppyDrive[unit].m_writelight = yamlLoadHelper.LoadUint(SS_YAML_KEY_WRITE_LIGHT); |
| 2489 | |
| 2490 | if (version >= 6) |
| 2491 | { |
| 2492 | m_floppyDrive[unit].m_isConnected = yamlLoadHelper.LoadBool(SS_YAML_KEY_DRIVE_CONNECTED); |
| 2493 | m_floppyDrive[unit].m_motorOnCycle = yamlLoadHelper.LoadUint64(SS_YAML_KEY_MOTOR_ON_CYCLE); |
| 2494 | } |
| 2495 | |
| 2496 | yamlLoadHelper.PopMap(); |
| 2497 | |
| 2498 | return bImageError; |
| 2499 | } |
| 2500 | |
| 2501 | void Disk2InterfaceCard::LoadSnapshotDriveUnit(YamlLoadHelper& yamlLoadHelper, UINT unit, UINT version) |
| 2502 | { |