Division by zero triggers INT #231

This commit is contained in:
2020-07-31 18:34:57 -04:00
parent 2ff19f24eb
commit 84a9132f5e
3 changed files with 49 additions and 8 deletions

View File

@@ -154,7 +154,6 @@ public class CPU implements MongoSerializable {
registerSetSize = registerSet.size();
// status.breakFlag = true;
while (!status.isBreakFlag()) {
counter++;

View File

@@ -32,9 +32,7 @@ public class DivInstruction extends Instruction {
(cpu.getRegisterSet().getRegister("A").getValue() & 0xFFFF);
if (src.get(srcIndex) == 0) {
//Division by 0
status.setBreakFlag(true);
status.setErrorFlag(true);
cpu.interrupt(IntInstruction.INT_DIVISION_BY_ZERO);
} else {
cpu.getRegisterSet().getRegister("A").setValue((char) (source / (char) src.get(srcIndex)));
cpu.getRegisterSet().getRegister("Y").setValue((char) (source % (char) src.get(srcIndex)));
@@ -52,15 +50,12 @@ public class DivInstruction extends Instruction {
(cpu.getRegisterSet().getRegister("A").getValue() & 0xFFFF);
if (src == 0) {
//Division by 0
status.setBreakFlag(true);
status.setErrorFlag(true);
cpu.interrupt(IntInstruction.INT_DIVISION_BY_ZERO);
} else {
cpu.getRegisterSet().getRegister("A").setValue((char) (source / (char) src));
cpu.getRegisterSet().getRegister("Y").setValue((char) (source % (char) src));
}
return status;
}
}