code cleanup

This commit is contained in:
folkert van heusden 2022-03-19 13:59:15 +01:00
parent cbcede499a
commit 16cd77ddb6

33
cpu.cpp
View file

@ -940,10 +940,7 @@ bool cpu::condition_code_operations(const uint16_t instr)
setPSW_spl(level); setPSW_spl(level);
// trap via vector 010 // trap via vector 010
pushStack(getPSW()); trap(010);
pushStack(getPC());
setPSW(b->readWord(012));
setPC(b->readWord(010));
fprintf(stderr, "SPL%d, new pc: %06o\n", level, getPC()); fprintf(stderr, "SPL%d, new pc: %06o\n", level, getPC());
@ -1010,17 +1007,11 @@ bool cpu::misc_operations(const uint16_t instr)
return true; return true;
case 0b0000000000000011: // BPT case 0b0000000000000011: // BPT
pushStack(getPSW()); trap(014);
pushStack(getPC());
setPC(b -> readWord(014));
setPSW(b -> readWord(016));
return true; return true;
case 0b0000000000000100: // IOT case 0b0000000000000100: // IOT
pushStack(getPSW()); trap(020);
pushStack(getPC());
setPC(b -> readWord(020));
setPSW(b -> readWord(022));
return true; return true;
case 0b0000000000000110: // RTT case 0b0000000000000110: // RTT
@ -1031,12 +1022,8 @@ bool cpu::misc_operations(const uint16_t instr)
case 0b0000000000000111: // MFPT case 0b0000000000000111: // MFPT
if (emulateMFPT) if (emulateMFPT)
setRegister(0, true, 1); // PDP-11/44 setRegister(0, true, 1); // PDP-11/44
else { else
pushStack(getPSW()); trap(012);
pushStack(getPC());
setPC(b -> readWord(012));
setPSW(b -> readWord(014));
}
return true; return true;
case 0b0000000000000101: // RESET case 0b0000000000000101: // RESET
@ -1045,19 +1032,13 @@ bool cpu::misc_operations(const uint16_t instr)
} }
if ((instr >> 8) == 0b10001000) { // EMT if ((instr >> 8) == 0b10001000) { // EMT
pushStack(getPSW()); trap(030);
pushStack(getPC());
setPC(b -> readWord(030));
setPSW(b -> readWord(032));
return true; return true;
} }
if ((instr >> 8) == 0b10001001) { // TRAP if ((instr >> 8) == 0b10001001) { // TRAP
pushStack(getPSW()); trap(034);
pushStack(getPC());
switchModeToKernel(); switchModeToKernel();
setPC(b -> readWord(034));
setPSW(b -> readWord(036));
return true; return true;
} }