mirror of
https://github.com/open-simh/simh.git
synced 2026-01-15 16:07:47 +00:00
3b2: Prevent attempts to ex/dep IO
This commit is contained in:
parent
cfbfac03bb
commit
f6e806df5a
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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 {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user