mirror of
https://github.com/transistorfet/moa.git
synced 2024-12-22 12:29:51 +00:00
Added ability to exclude only extended exceptions
This commit is contained in:
parent
a39557e233
commit
96e79329e7
@ -23,6 +23,7 @@ use moa::cpus::m68k::state::Status;
|
||||
enum Selection {
|
||||
Include,
|
||||
Exclude,
|
||||
ExcludeAddr,
|
||||
Only,
|
||||
}
|
||||
|
||||
@ -130,6 +131,11 @@ impl TestCase {
|
||||
// If the supervisor stack changes by 6 or more bytes, then it's likely expected to be caused by an exception
|
||||
self.initial_state.ssp.saturating_sub(self.final_state.ssp) >= 6
|
||||
}
|
||||
|
||||
pub fn is_extended_exception_case(&self) -> bool {
|
||||
// If the supervisor stack changes by 6 or more bytes, then it's likely expected to be caused by an exception
|
||||
self.initial_state.ssp.saturating_sub(self.final_state.ssp) >= 10
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -296,7 +302,9 @@ fn test_json_file(path: PathBuf, args: &Args) -> (usize, usize, String) {
|
||||
}
|
||||
|
||||
// Only run the test if it's selected by the exceptions flag
|
||||
if case.is_exception_case() && args.exceptions == Selection::Exclude {
|
||||
if case.is_extended_exception_case() && args.exceptions == Selection::ExcludeAddr {
|
||||
continue;
|
||||
} else if case.is_exception_case() && args.exceptions == Selection::Exclude {
|
||||
continue;
|
||||
} else if !case.is_exception_case() && args.exceptions == Selection::Only {
|
||||
continue;
|
||||
|
4
todo.txt
4
todo.txt
@ -1,4 +1,8 @@
|
||||
|
||||
Harte Tests:
|
||||
* for every failing test in MOVEfromSR, it's caused by an exception where at 0x7F3 it should be 0xF5, it's actually 0xE5, which is the READ/WRITE flag not set correctly (1 = READ)
|
||||
|
||||
|
||||
* make it possible to compile without audio support (minifb frontend requires it atm)
|
||||
|
||||
* I need some better function for dealing with memory, like a function that copies data with a loop, or allows offset reading of
|
||||
|
Loading…
Reference in New Issue
Block a user