mirror of
https://github.com/TomHarte/CLK.git
synced 2024-10-04 01:57:54 +00:00
'Perfected' the Activision stack paging detector.
This commit is contained in:
parent
0bcf9c30de
commit
b671df9906
@ -91,10 +91,12 @@ static void DeterminePagingFor2kCartridge(StaticAnalyser::Target &target, const
|
|||||||
static void DeterminePagingFor8kCartridge(StaticAnalyser::Target &target, const Storage::Cartridge::Cartridge::Segment &segment, const StaticAnalyser::MOS6502::Disassembly &disassembly)
|
static void DeterminePagingFor8kCartridge(StaticAnalyser::Target &target, const Storage::Cartridge::Cartridge::Segment &segment, const StaticAnalyser::MOS6502::Disassembly &disassembly)
|
||||||
{
|
{
|
||||||
// Activision stack titles have their vectors at the top of the low 4k, not the top, and
|
// Activision stack titles have their vectors at the top of the low 4k, not the top, and
|
||||||
// always list 0xf000 as both vectors; they do not repeat them
|
// always list 0xf000 as both vectors; they do not repeat them, and, inexplicably, they all
|
||||||
|
// issue an SEI as their first instruction (maybe some sort of relic of the development environment?)
|
||||||
if(
|
if(
|
||||||
segment.data[4095] == 0xf0 && segment.data[4093] == 0xf0 && segment.data[4094] == 0x00 && segment.data[4092] == 0x00 &&
|
segment.data[4095] == 0xf0 && segment.data[4093] == 0xf0 && segment.data[4094] == 0x00 && segment.data[4092] == 0x00 &&
|
||||||
(segment.data[8191] != 0xf0 || segment.data[8189] != 0xf0 || segment.data[8190] != 0x00 || segment.data[8188] != 0x00)
|
(segment.data[8191] != 0xf0 || segment.data[8189] != 0xf0 || segment.data[8190] != 0x00 || segment.data[8188] != 0x00) &&
|
||||||
|
segment.data[0] == 0x78
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::ActivisionStack;
|
target.atari.paging_model = StaticAnalyser::Atari2600PagingModel::ActivisionStack;
|
||||||
|
Loading…
Reference in New Issue
Block a user