11/70 has no MFPS instruction
This commit is contained in:
parent
40df962c83
commit
8b82095d49
1 changed files with 8 additions and 1 deletions
9
cpu.cpp
9
cpu.cpp
|
@ -27,7 +27,7 @@ void cpu::init_interrupt_queue()
|
||||||
{
|
{
|
||||||
queued_interrupts.clear();
|
queued_interrupts.clear();
|
||||||
|
|
||||||
for(int level=0; level<8; level++)
|
for(uint8_t level=0; level<8; level++)
|
||||||
queued_interrupts.insert({ level, { } });
|
queued_interrupts.insert({ level, { } });
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1311,6 +1311,7 @@ bool cpu::single_operand_instructions(const uint16_t instr)
|
||||||
auto g_dst = getGAM(dst_mode, dst_reg, word_mode, false);
|
auto g_dst = getGAM(dst_mode, dst_reg, word_mode, false);
|
||||||
|
|
||||||
if (word_mode) { // MFPS
|
if (word_mode) { // MFPS
|
||||||
|
#if 0 // not in the PDP-11/70
|
||||||
uint16_t temp = psw & 0xff;
|
uint16_t temp = psw & 0xff;
|
||||||
bool extend_b7 = psw & 128;
|
bool extend_b7 = psw & 128;
|
||||||
|
|
||||||
|
@ -1324,6 +1325,9 @@ bool cpu::single_operand_instructions(const uint16_t instr)
|
||||||
setPSW_v(false);
|
setPSW_v(false);
|
||||||
setPSW_n(extend_b7);
|
setPSW_n(extend_b7);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
trap(010);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else { // SXT
|
else { // SXT
|
||||||
int32_t vl = -getPSW_n();
|
int32_t vl = -getPSW_n();
|
||||||
|
@ -2167,6 +2171,9 @@ void cpu::step_b()
|
||||||
try {
|
try {
|
||||||
uint16_t instr = b->readWord(temp_pc);
|
uint16_t instr = b->readWord(temp_pc);
|
||||||
|
|
||||||
|
if (temp_pc == 025250)
|
||||||
|
DOLOG(debug, true, "GREP %06o %06o", temp_pc, instr);
|
||||||
|
|
||||||
addRegister(7, false, 2);
|
addRegister(7, false, 2);
|
||||||
|
|
||||||
if (double_operand_instructions(instr))
|
if (double_operand_instructions(instr))
|
||||||
|
|
Loading…
Add table
Reference in a new issue