mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-11 08:30:55 +00:00
Attempt to spot screen takeovers.
This commit is contained in:
parent
67add0da93
commit
5280f5aba2
@ -185,7 +185,19 @@ class ConcreteMachine:
|
|||||||
return desc;
|
return desc;
|
||||||
};
|
};
|
||||||
|
|
||||||
switch(comment & static_cast<uint32_t>(~(1 << 17))) {
|
const uint32_t swi_code = comment & static_cast<uint32_t>(~(1 << 17));
|
||||||
|
switch(swi_code) {
|
||||||
|
// To consider: catching VDU 22, though that means parsing the output stream
|
||||||
|
// via OS_WriteC, SWI &00, sufficiently to be able to spot VDUs.
|
||||||
|
|
||||||
|
case 0x400e3: // Wimp_SetMode
|
||||||
|
case 0x65: // OS_ScreenMode
|
||||||
|
case 0x3f: // OS_CheckModeValid
|
||||||
|
if(autoload_phase_ == AutoloadPhase::OpeningProgram) {
|
||||||
|
autoload_phase_ = AutoloadPhase::Ended;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x400d4: {
|
case 0x400d4: {
|
||||||
uint32_t address = executor_.registers()[1] + 28;
|
uint32_t address = executor_.registers()[1] + 28;
|
||||||
|
|
||||||
@ -270,6 +282,7 @@ class ConcreteMachine:
|
|||||||
// Some default icon sizing assumptions are baked in here.
|
// Some default icon sizing assumptions are baked in here.
|
||||||
const auto x_target = target_window_[0] + (static_cast<int32_t>(x1) + static_cast<int32_t>(x2)) / 2;
|
const auto x_target = target_window_[0] + (static_cast<int32_t>(x1) + static_cast<int32_t>(x2)) / 2;
|
||||||
const auto y_target = target_window_[1] + static_cast<int32_t>(y1) + 24;
|
const auto y_target = target_window_[1] + static_cast<int32_t>(y1) + 24;
|
||||||
|
cursor_actions_.clear();
|
||||||
cursor_actions_.push_back(CursorAction::move_to(
|
cursor_actions_.push_back(CursorAction::move_to(
|
||||||
x_target >> 1,
|
x_target >> 1,
|
||||||
256 - (y_target >> 2)
|
256 - (y_target >> 2)
|
||||||
|
@ -34,7 +34,7 @@ constexpr char TestSuiteHome[] = "/Users/tharte/Projects/ProcessorTests/8088/v1"
|
|||||||
using Flags = InstructionSet::x86::Flags;
|
using Flags = InstructionSet::x86::Flags;
|
||||||
struct Registers {
|
struct Registers {
|
||||||
public:
|
public:
|
||||||
static constexpr bool is_32bit = false;
|
// static constexpr bool is_32bit = false;
|
||||||
|
|
||||||
uint8_t &al() { return ax_.halves.low; }
|
uint8_t &al() { return ax_.halves.low; }
|
||||||
uint8_t &ah() { return ax_.halves.high; }
|
uint8_t &ah() { return ax_.halves.high; }
|
||||||
|
@ -29,6 +29,11 @@ static NSDictionary<NSString *, NSString *> *mainProgramsBySHA1 = @{
|
|||||||
@"8fcad522ea22b75b393ceb334cfef3f324b248ee": @"!E-TYPE",
|
@"8fcad522ea22b75b393ceb334cfef3f324b248ee": @"!E-TYPE",
|
||||||
@"8ca4289ac423d4878129cb17d6177123b321108f": @"!StrtWrite",
|
@"8ca4289ac423d4878129cb17d6177123b321108f": @"!StrtWrite",
|
||||||
@"4f92efecfc1e3a510a816f570ccb7082f0154e37": @"!HeroQuest",
|
@"4f92efecfc1e3a510a816f570ccb7082f0154e37": @"!HeroQuest",
|
||||||
|
@"9bd6d2514c04ce02fcf8ef214815229b28be56d8": @"!adventure",
|
||||||
|
@"d3493850e8ed91ae0a55a53866139781ad65e63d": @"!Nebulus",
|
||||||
|
@"ba655bd8936859a33bab5fde447e33486c3b0d3e": @"!Attack",
|
||||||
|
@"a6502faf15ddb4acaed2ca859cedc1225e7fa762": @"!Wolf",
|
||||||
|
// @"04f588f87facd507e043b06f512e9bdb6fe996c0": // TODO: should decline to pick.
|
||||||
|
|
||||||
// Various things that are not the first disk.
|
// Various things that are not the first disk.
|
||||||
@"2cff99237837e2291b845eb63977362ad9b4f040": @"",
|
@"2cff99237837e2291b845eb63977362ad9b4f040": @"",
|
||||||
@ -37,7 +42,8 @@ static NSDictionary<NSString *, NSString *> *mainProgramsBySHA1 = @{
|
|||||||
@"b7139d9bd927b8e4d933fd8aa3080a7249117495": @"",
|
@"b7139d9bd927b8e4d933fd8aa3080a7249117495": @"",
|
||||||
@"66a82651f86d9cf0aa5b54c55bcaa8fefd3901da": @"",
|
@"66a82651f86d9cf0aa5b54c55bcaa8fefd3901da": @"",
|
||||||
@"c3d3cd9e28f5e7499fd70057f820c75219538c69": @"",
|
@"c3d3cd9e28f5e7499fd70057f820c75219538c69": @"",
|
||||||
|
@"81bfd4ab92c538f5b15ad64bba625aac2ffb243d": @"",
|
||||||
|
@"39318695b6e64c9d7270f2b6d8213a7d4b0b0c43": @"",
|
||||||
};
|
};
|
||||||
#undef Record
|
#undef Record
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user