Skip to content

CPC: Reason for Chase HQ and Cybernoid found #32

Description

@floooh

Ok, here's the reason why this was broken, then worked and then was broken again:

It's the cassette read trap here:

z80_set_trap(&board.z80, 1, this->casread_trap);

Problem is: cannot simply set and clear the trap from inside the CPU callback... this will not be noticed by the CPU since the CPU struct is overwritten... need to implement a more robust solution since the same problem can also happen on other systems (one solution would be a separate 'bool z80_check_trap(int trap_id)' callback which would only be called for verification when the 16-bit address matches.

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions