mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-26 23:52:26 +00:00
Invents some additional PEA tests, and further fixes PEA.
This commit is contained in:
parent
8d39c3bc98
commit
d81053ea38
@ -487,7 +487,7 @@ template <Analyser::Static::Macintosh::Target::Model model> class ConcreteMachin
|
|||||||
CB1 = clock (input)
|
CB1 = clock (input)
|
||||||
|
|
||||||
CA2 is used for receiving RTC interrupts.
|
CA2 is used for receiving RTC interrupts.
|
||||||
CA1 is used for receiving vsync maybe?
|
CA1 is used for receiving vsync.
|
||||||
*/
|
*/
|
||||||
if(port == Port::B && line == Line::Two) keyboard_.set_input(value);
|
if(port == Port::B && line == Line::Two) keyboard_.set_input(value);
|
||||||
else printf("Unhandled control line output: %c %d\n", port ? 'B' : 'A', int(line));
|
else printf("Unhandled control line output: %c %d\n", port ? 'B' : 'A', int(line));
|
||||||
|
@ -863,7 +863,7 @@ struct ProcessorStorageConstructor {
|
|||||||
// Temporary storage for the Program fields.
|
// Temporary storage for the Program fields.
|
||||||
ProcessorBase::Program program;
|
ProcessorBase::Program program;
|
||||||
|
|
||||||
// if(instruction == 0xe569) {
|
// if(instruction == 0x4879) {
|
||||||
// printf("");
|
// printf("");
|
||||||
// }
|
// }
|
||||||
|
|
||||||
@ -2455,16 +2455,16 @@ struct ProcessorStorageConstructor {
|
|||||||
|
|
||||||
case Ind: // PEA (An)
|
case Ind: // PEA (An)
|
||||||
operation = Operation::MOVEAl;
|
operation = Operation::MOVEAl;
|
||||||
|
op(Action::PerformOperation);
|
||||||
op(int(Action::Decrement4) | MicroOp::DestinationMask);
|
op(int(Action::Decrement4) | MicroOp::DestinationMask);
|
||||||
op(int(Action::CopyToEffectiveAddress) | MicroOp::DestinationMask);
|
op(int(Action::CopyToEffectiveAddress) | MicroOp::DestinationMask, seq("np nW+ nw", { ea(1), ea(1) }));
|
||||||
op(Action::PerformOperation, seq("np nW+ nw", { ea(1), ea(1) }));
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XXXl: // PEA (XXX).l
|
case XXXl: // PEA (XXX).l
|
||||||
case XXXw: // PEA (XXX).w
|
case XXXw: // PEA (XXX).w
|
||||||
|
op(int(Action::Decrement4) | MicroOp::DestinationMask, (mode == XXXl) ? seq("np") : nullptr);
|
||||||
op(address_assemble_for_mode(mode) | MicroOp::SourceMask);
|
op(address_assemble_for_mode(mode) | MicroOp::SourceMask);
|
||||||
op(int(Action::Decrement4) | MicroOp::DestinationMask);
|
op(int(Action::CopyToEffectiveAddress) | MicroOp::DestinationMask);
|
||||||
op(int(Action::CopyToEffectiveAddress) | MicroOp::DestinationMask, (mode == XXXl) ? seq("np") : nullptr);
|
|
||||||
op(Action::PerformOperation, seq("np nW+ nw np", { ea(1), ea(1) }));
|
op(Action::PerformOperation, seq("np nW+ nw np", { ea(1), ea(1) }));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user