mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-21 21:33:54 +00:00
Test digits individually; CSLs autolink.
This commit is contained in:
parent
ef11262721
commit
30b1b36e63
@ -951,18 +951,23 @@ class ConcreteMachine:
|
||||
const auto code = uint16_t(
|
||||
((ssm_code_ << 8) & 0xff00) | ((ssm_code_ >> 16) & 0x00ff)
|
||||
);
|
||||
ssm_code_ = 0;
|
||||
|
||||
const auto is_valid = [](uint8_t digit) {
|
||||
return
|
||||
(digit <= 0x3f) ||
|
||||
(digit >= 0x7f && digit <= 0x9f) ||
|
||||
(digit >= 0xa4 && digit <= 0xa7) ||
|
||||
(digit >= 0xac && digit <= 0xaf) ||
|
||||
(digit >= 0xb4 && digit <= 0xb7) ||
|
||||
(digit >= 0xbc && digit <= 0xbf) ||
|
||||
(digit >= 0xc0 && digit <= 0xfd);
|
||||
};
|
||||
|
||||
if(
|
||||
(code <= 0x3f3f) ||
|
||||
(code >= 0x7f7f && code <= 0x9f9f) ||
|
||||
(code >= 0xa4a4 && code <= 0xa7a7) ||
|
||||
(code >= 0xacac && code <= 0xafaf) ||
|
||||
(code >= 0xb4b4 && code <= 0xb7b7) ||
|
||||
(code >= 0xbcbc && code <= 0xbfbf) ||
|
||||
(code >= 0xc0c0 && code <= 0xfdfd)
|
||||
is_valid(static_cast<uint8_t>(code)) && is_valid(static_cast<uint8_t>(code >> 8))
|
||||
) {
|
||||
ssm_delegate_->perform(code);
|
||||
ssm_code_ = 0;
|
||||
}
|
||||
}
|
||||
} else if((ssm_code_ & 0xffff) == 0xedfe) {
|
||||
|
@ -178,7 +178,7 @@ private:
|
||||
if(!lazy_machine) {
|
||||
Machine::Error error;
|
||||
lazy_machine = Machine::MachineForTarget(&target, CSROMFetcher(), error);
|
||||
reinterpret_cast<AmstradCPC::Machine *>(lazy_machine->raw_pointer())
|
||||
static_cast<AmstradCPC::Machine *>(lazy_machine->raw_pointer())
|
||||
->set_ssm_delegate(&ssm_delegate);
|
||||
lazy_machine->scan_producer()->set_scan_target(&scan_target);
|
||||
|
||||
@ -295,38 +295,38 @@ private:
|
||||
|
||||
- (void)testModuleA {
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-0.CSL"];
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-1.CSL"];
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-2.CSL"];
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-3.CSL"];
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-4.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-1.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-2.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-3.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-4.CSL"];
|
||||
}
|
||||
- (void)testModuleB {
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-0.CSL"];
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-1.CSL"];
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-2.CSL"];
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-3.CSL"];
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-4.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-1.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-2.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-3.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-4.CSL"];
|
||||
}
|
||||
- (void)testModuleC {
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-0.CSL"];
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-1.CSL"];
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-2.CSL"];
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-3.CSL"];
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-4.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-1.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-2.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-3.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-4.CSL"];
|
||||
}
|
||||
- (void)testModuleD {
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-0.CSL"];
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-1.CSL"];
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-2.CSL"];
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-3.CSL"];
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-4.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-1.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-2.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-3.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-4.CSL"];
|
||||
}
|
||||
- (void)testModuleE {
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-0.CSL"];
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-1.CSL"];
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-2.CSL"];
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-3.CSL"];
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-4.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-1.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-2.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-3.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-4.CSL"];
|
||||
}
|
||||
|
||||
@end
|
||||
|
Loading…
Reference in New Issue
Block a user