• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Motorola M6800 (6800) Exorciser / SWTPC emulator plus 6801 instruction set emulation


コミットメタ情報

リビジョン5943efec16b4df85a08cfdb0d0c7a26b5ddabe29 (tree)
日時2020-11-22 02:42:52
作者Joel Matthew Rees <joel.rees@gmai...>
コミッターJoel Matthew Rees

ログメッセージ

got the bug in the opcode determinant logic for 8-bit binary, need to
clean up debug prints

変更サマリ

差分

--- a/sim6800.c
+++ b/sim6800.c
@@ -217,8 +217,9 @@ void show_trace(int insn_no, struct trace_entry *t)
217217 sprintf(buf + strlen(buf), "%2.2X ", t->insn[0]);
218218
219219 if (t->insn[0] & 0x80) {
220- if ( ((t->insn[0] & 0x0F) < 0x0C)
221- && ( (cputype == 0x6801 && (t->insn[0] & 0x0F) != 0x03) ) ) {
220+ unsigned opc_det = t->insn[0] & 0x0f;
221+ if ( (cputype < 0x6801 && opc_det < 0x0C)
222+ || (opc_det < 0x0c && opc_det != 0x03) ) {
222223 if (t->insn[0] & 0x40) {
223224 sprintf(operand, "B");
224225 } else {
@@ -852,8 +853,9 @@ void sim(void)
852853 opcode = fetch();
853854
854855 if (opcode & 0x80) {
855- if ( ((opcode & 0x0F) < 0x0C)
856- && (cputype == 0x6801 && ((opcode & 0x0F) != 0x03)) ) {
856+ unsigned opc_det = opcode & 0x0f;
857+ if ( (cputype < 0x6801 && opc_det < 0x0C)
858+ || (opc_det < 0x0c && opc_det != 0x03) ) {
857859 /* Get operand A */
858860 if (opcode & 0x40) {
859861 a = accb;