1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-27 16:31:31 +00:00

Introduce FF.7 alias.

This commit is contained in:
Thomas Harte 2023-09-29 15:26:25 -04:00
parent f2732962d0
commit 103f42f0b0
2 changed files with 9 additions and 3 deletions

View File

@ -759,6 +759,7 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
switch(reg) { switch(reg) {
default: default:
// case 1 is treated as another form of TEST on the 8086. // case 1 is treated as another form of TEST on the 8086.
// (and, I guess, the 80186?)
if constexpr (model >= Model::i80286) { if constexpr (model >= Model::i80286) {
undefined(); undefined();
} }
@ -841,7 +842,14 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
source_ = destination_ = memreg; source_ = destination_ = memreg;
switch(reg) { switch(reg) {
default: undefined(); default:
// case 7 is treated as another form of PUSH on the 8086.
// (and, I guess, the 80186?)
if constexpr (model >= Model::i80286) {
undefined();
}
[[fallthrough]];
case 6: SetOperation(Operation::PUSH); break;
case 0: SetOperation(Operation::INC); break; case 0: SetOperation(Operation::INC); break;
case 1: SetOperation(Operation::DEC); break; case 1: SetOperation(Operation::DEC); break;
@ -849,7 +857,6 @@ std::pair<int, typename Decoder<model>::InstructionT> Decoder<model>::decode(con
case 3: SetOperation(Operation::CALLfar); break; case 3: SetOperation(Operation::CALLfar); break;
case 4: SetOperation(Operation::JMPabs); break; case 4: SetOperation(Operation::JMPabs); break;
case 5: SetOperation(Operation::JMPfar); break; case 5: SetOperation(Operation::JMPfar); break;
case 6: SetOperation(Operation::PUSH); break;
} }
// TODO: CALLfar and JMPfar aren't correct above; find out what is. // TODO: CALLfar and JMPfar aren't correct above; find out what is.
break; break;

View File

@ -160,7 +160,6 @@ std::string to_string(
@"D6.json.gz", @"D6.json.gz",
@"F6.1.json.gz", @"F7.1.json.gz", @"F6.1.json.gz", @"F7.1.json.gz",
@"FF.7.json.gz",
nil nil
]; ];