1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-07-03 11:30:02 +00:00

There's not a lot to STP and WAI from a bus program point of view.

This commit is contained in:
Thomas Harte 2020-09-26 20:18:30 -04:00
parent 3dc22a9fd5
commit 473799cb62
2 changed files with 16 additions and 2 deletions

View File

@ -518,7 +518,19 @@ struct CPU::WDC65816::ProcessorStorageConstructor {
}
// 19c. Stop the Clock.
static void stp(AccessType, bool, const std::function<void(MicroOp)> &target) {
target(CycleFetchPC); // IO
target(CycleFetchPC); // IO
target(OperationPerform);
}
// 19d. Wait for interrupt.
static void wai(AccessType, bool, const std::function<void(MicroOp)> &target) {
target(CycleFetchPC); // IO
target(CycleFetchPC); // IO
target(OperationPerform);
}
// 20. Relative; r.
// 21. Relative long; rl.
// 22a. Stack; s, abort/irq/nmi/res.
@ -759,7 +771,7 @@ ProcessorStorage::ProcessorStorage() {
/* 0xc8 INY i */ op(implied, INY);
/* 0xc9 CMP # */ op(immediate, CMP);
/* 0xca DEX i */ op(implied, DEC);
/* 0xcb WAI i */
/* 0xcb WAI i */ op(wai, WAI);
/* 0xcc CPY a */ op(absolute, CPY);
/* 0xcd CMP a */ op(absolute, CMP);
/* 0xce DEC a */ op(absolute_rmw, DEC);
@ -776,7 +788,7 @@ ProcessorStorage::ProcessorStorage() {
/* 0xd8 CLD i */ op(implied, CLD);
/* 0xd9 CMP a, y */ op(absolute_y, CMP);
/* 0xda PHX s */
/* 0xdb STP i */
/* 0xdb STP i */ op(stp, STP);
/* 0xdc JML (a) */ op(absolute_indirect_jml, JML);
/* 0xdd CMP a, x */ op(absolute_x, CMP);
/* 0xde DEC a, x */ op(absolute_x_rmw, DEC);

View File

@ -118,6 +118,8 @@ enum Operation: uint8_t {
TAX, TAY, TCD, TCS, TDC, TSC, TSX, TXA, TXS, TXY, TYA, TYX,
XCE, XBA,
STP, WAI,
/// Loads the PC with the operand from the data buffer.
JMP,