From da2b19028893c6b7bd64229970b47caa86f86737 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 1 Jun 2019 19:08:29 -0400 Subject: [PATCH] Stores expected bit length. --- Components/DiskII/IWM.cpp | 8 ++++++++ Components/DiskII/IWM.hpp | 2 ++ 2 files changed, 10 insertions(+) diff --git a/Components/DiskII/IWM.cpp b/Components/DiskII/IWM.cpp index ac8143317..61d71ba76 100644 --- a/Components/DiskII/IWM.cpp +++ b/Components/DiskII/IWM.cpp @@ -175,7 +175,15 @@ void IWM::write(int address, uint8_t input) { bit 6: 1 = MZ-reset. bit 7: reserved for future expansion. */ + mode_ = input; + + switch(mode_ & 0x18) { + case 0x00: bit_length_ = Cycles(24); break; // slow mode, 7Mhz + case 0x08: bit_length_ = Cycles(12); break; // fast mode, 7Mhz + case 0x10: bit_length_ = Cycles(32); break; // slow mode, 8Mhz + case 0x18: bit_length_ = Cycles(16); break; // fast mode, 8Mhz + } printf("IWM mode is now %02x\n", mode_); break; diff --git a/Components/DiskII/IWM.hpp b/Components/DiskII/IWM.hpp index 1329d330e..c63dfe465 100644 --- a/Components/DiskII/IWM.hpp +++ b/Components/DiskII/IWM.hpp @@ -53,6 +53,8 @@ class IWM { Cycles cycles_until_motor_off_; void access(int address); + + Cycles bit_length_; };