3b2: Prevent attempts to ex/dep IO

This commit is contained in:
Seth Morabito 2018-03-03 10:40:07 -08:00
parent cfbfac03bb
commit f6e806df5a
2 changed files with 10 additions and 8 deletions

View file

@ -571,12 +571,13 @@ t_stat cpu_ex(t_value *vptr, t_addr addr, UNIT *uptr, int32 sw)
*vptr = value;
return succ;
} else {
if (!(addr_is_rom(uaddr) || addr_is_mem(uaddr) || addr_is_io(uaddr))) {
if (addr_is_rom(uaddr) || addr_is_mem(uaddr)) {
*vptr = (uint32) pread_b(uaddr);
return SCPE_OK;
} else {
*vptr = 0;
return SCPE_NXM;
}
*vptr = (uint32) pread_b(uaddr);
return SCPE_OK;
}
}
@ -587,11 +588,12 @@ t_stat cpu_dep(t_value val, t_addr addr, UNIT *uptr, int32 sw)
if (sw & EX_V_FLAG) {
return deposit(uaddr, (uint8) val);
} else {
if (!(addr_is_rom(uaddr) || addr_is_mem(uaddr) || addr_is_io(uaddr))) {
if (addr_is_mem(uaddr)) {
pwrite_b(uaddr, (uint8) val);
return SCPE_OK;
} else {
return SCPE_NXM;
}
pwrite_b(uaddr, (uint8) val);
return SCPE_OK;
}
}

View file

@ -764,7 +764,7 @@ t_stat examine(uint32 va, uint8 *val) {
succ = mmu_decode_va(va, 0, FALSE, &pa);
if (succ == SCPE_OK) {
if (addr_is_rom(pa) || addr_is_io(pa) || addr_is_mem(pa)) {
if (addr_is_rom(pa) || addr_is_mem(pa)) {
*val = pread_b(pa);
return SCPE_OK;
} else {
@ -784,7 +784,7 @@ t_stat deposit(uint32 va, uint8 val) {
succ = mmu_decode_va(va, 0, FALSE, &pa);
if (succ == SCPE_OK) {
if (addr_is_mem(pa) || addr_is_io(pa)) {
if (addr_is_mem(pa)) {
pwrite_b(pa, val);
return SCPE_OK;
} else {