1
0
mirror of https://github.com/livingcomputermuseum/sImlac.git synced 2026-01-11 23:53:24 +00:00

Small tweak to the last commit for invalid instruction handling.

This commit is contained in:
Josh Dersch 2020-05-12 14:43:39 -07:00
parent f0bc983c8a
commit 37c5437059
3 changed files with 30 additions and 0 deletions

View File

@ -282,6 +282,8 @@ namespace imlac
/// </summary>
protected enum DisplayOpcode
{
Invalid, // Set when an instruction could not be decoded.
// Basic instructions
DLXA, // Load X Accumulator
DLYA, // Load Y Accumulator

View File

@ -354,6 +354,14 @@ namespace imlac
_pc++;
break;
case DisplayOpcode.Invalid:
Helpers.SignalError(
LogType.DisplayProcessor,
"Execution of invalid display processor instruction {0}",
Helpers.ToOctal(instruction.Data));
_pc++;
break;
default:
Helpers.SignalError(
LogType.DisplayProcessor,
@ -683,6 +691,9 @@ namespace imlac
LogType.DisplayProcessor,
"Unhandled Display Processor Mode instruction {0}",
Helpers.ToOctal(_word));
_opcode = DisplayOpcode.Invalid;
_data = _word;
break;
}
}
@ -721,6 +732,9 @@ namespace imlac
LogType.DisplayProcessor,
"Unhandled extended Display Processor Mode instruction {0}",
Helpers.ToOctal(word));
_opcode = DisplayOpcode.Invalid;
_data = word;
break;
}

View File

@ -426,6 +426,14 @@ namespace imlac
_pc++;
break;
case DisplayOpcode.Invalid:
Helpers.SignalError(
LogType.DisplayProcessor,
"Execution of invalid display opcode {0}",
Helpers.ToOctal(instruction.Data));
_pc++;
break;
default:
Helpers.SignalError(
LogType.DisplayProcessor,
@ -871,6 +879,9 @@ namespace imlac
LogType.DisplayProcessor,
"Unhandled Display Processor Mode instruction {0}",
Helpers.ToOctal(_word));
_opcode = DisplayOpcode.Invalid;
_data = _word;
break;
}
}
@ -930,6 +941,9 @@ namespace imlac
LogType.DisplayProcessor,
"Unhandled extended Display Processor Mode instruction {0}",
Helpers.ToOctal(word));
_opcode = DisplayOpcode.Invalid;
_data = word;
}
}