summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ajrhacker@users.noreply.github.com>2020-09-26 13:19:47 -0400
committer AJR <ajrhacker@users.noreply.github.com>2020-09-26 13:19:47 -0400
commitac99753eb62661b4d41e081ff1ef82f8e4050f03 (patch)
treeead5d399da6f59e771eed90f37e48fcd3981e17a
parent2baeac95fcdb2a81e905ccb5e11879b807434208 (diff)
omti8621: Reimplement FDC rate selection
-rw-r--r--src/devices/bus/isa/omti8621.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index 4c6225baa9f..1da5d23f819 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -1342,8 +1342,11 @@ void omti8621_device::fd_moten_w(uint8_t data)
void omti8621_device::fd_rate_w(uint8_t data)
{
- // Bit 1 = FD_MINI (TODO)
- // Bit 0 = FD_RATE (TODO)
+ // Bit 1 = FD_MINI (connects to pin 3 of FDC9239)
+ // Bit 0 = FD_RATE (inverted output connects to pin 4 of 74F163)
+ u32 fdc_clk = (48_MHz_XTAL / (BIT(data, 0) ? 5 : 3) / (BIT(data, 1) ? 4 : 2)).value();
+ m_fdc->set_unscaled_clock(fdc_clk);
+ m_fdc->set_rate(fdc_clk / 16);
}
void omti8621_device::fd_extra_w(uint8_t data)