From a67e0014a4cbcd44f70b6ca8f765805a3512ae21 Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sat, 2 Nov 2019 19:36:15 -0400 Subject: [PATCH] Fixes video base address and mono/colour monitor value. Now I see a GEM desktop. In blue. --- Machines/AtariST/AtariST.cpp | 2 +- Machines/AtariST/Video.cpp | 2 +- Processors/68000/Implementation/68000Implementation.hpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Machines/AtariST/AtariST.cpp b/Machines/AtariST/AtariST.cpp index d7a9bbd1b..49bbc0fd8 100644 --- a/Machines/AtariST/AtariST.cpp +++ b/Machines/AtariST/AtariST.cpp @@ -637,7 +637,7 @@ class ConcreteMachine: GPIP 0: centronics busy */ mfp_->set_port_input( - 0x00 | // b7: Monochrome monitor detect (1 = is monochrome). + 0x80 | // b7: Monochrome monitor detect (1 = is monochrome). 0x40 | // b6: RS-232 ring indicator. (dma_->get_interrupt_line() ? 0x00 : 0x20) | // b5: FD/HS interrupt (0 = interrupt requested). ((keyboard_acia_->get_interrupt_line() || midi_acia_->get_interrupt_line()) ? 0x00 : 0x10) | // b4: Keyboard/MIDI interrupt (0 = interrupt requested). diff --git a/Machines/AtariST/Video.cpp b/Machines/AtariST/Video.cpp index b93ad648a..bc035aeb3 100644 --- a/Machines/AtariST/Video.cpp +++ b/Machines/AtariST/Video.cpp @@ -149,7 +149,7 @@ void Video::run_for(HalfCycles duration) { x = 0; y = (y + 1) % mode_params.lines_per_frame; if(!y) - current_address_ = base_address_; + current_address_ = base_address_ >> 1; } } diff --git a/Processors/68000/Implementation/68000Implementation.hpp b/Processors/68000/Implementation/68000Implementation.hpp index b9cb9a01e..dea0e33dc 100644 --- a/Processors/68000/Implementation/68000Implementation.hpp +++ b/Processors/68000/Implementation/68000Implementation.hpp @@ -2001,7 +2001,7 @@ template void Proces // Otherwise, the vector is whatever we were just told it is. effective_address_[0].full = uint32_t(source_bus_data_[0].halves.low.halves.low << 2); - printf("Interrupt vector: %06x\n", effective_address_[0].full); +// printf("Interrupt vector: %06x\n", effective_address_[0].full); break; case int_type(MicroOp::Action::CopyNextWord):