mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-23 03:32:32 +00:00
Fixes predecrementing MOVEM to leave the proper address in the relevant register.
This commit is contained in:
parent
55073b0a52
commit
6d6046757d
@ -11,6 +11,9 @@
|
|||||||
#include <array>
|
#include <array>
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
#include "68000.hpp"
|
#include "68000.hpp"
|
||||||
#include "CSROMFetcher.hpp"
|
#include "CSROMFetcher.hpp"
|
||||||
|
|
||||||
@ -107,6 +110,8 @@ class QL: public CPU::MC68000::BusHandler {
|
|||||||
std::unique_ptr<QL> _machine;
|
std::unique_ptr<QL> _machine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::streambuf *coutbuf;
|
||||||
|
|
||||||
- (void)setUp {
|
- (void)setUp {
|
||||||
const auto roms = CSROMFetcher()("SinclairQL", {"js.rom"});
|
const auto roms = CSROMFetcher()("SinclairQL", {"js.rom"});
|
||||||
_machine.reset(new QL(*roms[0]));
|
_machine.reset(new QL(*roms[0]));
|
||||||
|
@ -52,7 +52,7 @@ template <class T, bool dtack_is_implicit> void Processor<T, dtack_is_implicit>:
|
|||||||
// no instruction was ongoing. Either way, do a standard instruction operation.
|
// no instruction was ongoing. Either way, do a standard instruction operation.
|
||||||
|
|
||||||
// TODO: unless an interrupt is pending, or the trap flag is set.
|
// TODO: unless an interrupt is pending, or the trap flag is set.
|
||||||
static bool should_log = false;
|
// static bool should_log = false;
|
||||||
|
|
||||||
// should_log |= program_counter_.full >= 0x4F54 && program_counter_.full <= 0x4F84;
|
// should_log |= program_counter_.full >= 0x4F54 && program_counter_.full <= 0x4F84;
|
||||||
// if(should_log) {
|
// if(should_log) {
|
||||||
@ -654,7 +654,7 @@ template <class T, bool dtack_is_implicit> void Processor<T, dtack_is_implicit>:
|
|||||||
offset = 15;
|
offset = 15;
|
||||||
start_address -= 2;
|
start_address -= 2;
|
||||||
write_address_sequence_long(dec_action, 2);
|
write_address_sequence_long(dec_action, 2);
|
||||||
movem_final_address_ = start_address;
|
movem_final_address_ = start_address + 2;
|
||||||
} else {
|
} else {
|
||||||
write_address_sequence_long(inc_action, 0);
|
write_address_sequence_long(inc_action, 0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user