RP06: corrected read-command & invoke interrupt when read is done

This commit is contained in:
Folkert van Heusden 2024-06-12 23:11:24 +02:00
parent 19a41b3b35
commit 07fd0fdb34
Signed by untrusted user who does not match committer: folkert
GPG key ID: 30190E8C1F28D8AE

View file

@ -154,7 +154,7 @@ void rp06::write_word(const uint16_t addr, uint16_t v)
if (v & 1) { if (v & 1) {
int function_code = v & 63; int function_code = v & 63;
if (function_code == 060) { // READ if (function_code == 070) { // READ
uint32_t offs = compute_offset(); uint32_t offs = compute_offset();
uint32_t addr = getphysaddr(); uint32_t addr = getphysaddr();
@ -176,6 +176,9 @@ void rp06::write_word(const uint16_t addr, uint16_t v)
registers[reg_num(RP06_WC)] = 0; registers[reg_num(RP06_WC)] = 0;
registers[reg_num(RP06_CS1)] |= 0200; // drive ready registers[reg_num(RP06_CS1)] |= 0200; // drive ready
if (registers[reg_num(RP06_CS1)] & 0100) // IE? (interrupt enable)
b->getCpu()->queue_interrupt(5, 0254);
} }
} }
} }