Skip to content

Commit

Permalink
Remove code repetition on unknown OP
Browse files Browse the repository at this point in the history
  • Loading branch information
elvisvoer committed Feb 4, 2024
1 parent ff43d1c commit 1d88443
Showing 1 changed file with 10 additions and 12 deletions.
22 changes: 10 additions & 12 deletions src/lib/emulator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,12 @@ export default class Emulator {
}
}

private errorOnUnknownOp(op: number) {
throw new Error(
`Unknown instruction 0x${op.toString(16).padStart(4, "0")}`
);
}

private executeOp(op: number) {
const o = (op >> 12) & 0x000f;
const x = (op >> 8) & 0x000f;
Expand Down Expand Up @@ -326,9 +332,7 @@ export default class Emulator {
break;
}
default:
throw new Error(
`Unknown instruction 0x${op.toString(16).padStart(4, "0")}`
);
this.errorOnUnknownOp(op);
}
break;
}
Expand Down Expand Up @@ -358,9 +362,7 @@ export default class Emulator {
}
break;
default:
throw new Error(
`Unknown instruction 0x${op.toString(16).padStart(4, "0")}`
);
this.errorOnUnknownOp(op);
}
break;
}
Expand Down Expand Up @@ -414,16 +416,12 @@ export default class Emulator {
}
break;
default:
throw new Error(
`Unknown instruction 0x${op.toString(16).padStart(4, "0")}`
);
this.errorOnUnknownOp(op);
}
break;
}
default:
throw new Error(
`Unknown instruction 0x${op.toString(16).padStart(4, "0")}`
);
this.errorOnUnknownOp(op);
}
}

Expand Down

0 comments on commit 1d88443

Please sign in to comment.