also in disassembler mode it would throw exceptions
This commit is contained in:
parent
20f5f7b4bd
commit
a6003698a6
3 changed files with 8 additions and 12 deletions
11
btester.sh
11
btester.sh
|
@ -1,11 +0,0 @@
|
||||||
#! /bin/sh
|
|
||||||
|
|
||||||
pdpy11 --lst tester.mac
|
|
||||||
|
|
||||||
if [ ! -e raw_to_simh_bin ] ; then
|
|
||||||
g++ -Ofast raw_to_simh_bin.cpp -o raw_to_simh_bin
|
|
||||||
fi
|
|
||||||
|
|
||||||
./raw_to_simh_bin tester 512 512 tester.bin
|
|
||||||
|
|
||||||
ls -la tester*
|
|
6
bus.cpp
6
bus.cpp
|
@ -407,7 +407,6 @@ uint16_t bus::read(const uint16_t addr_in, const word_mode_t word_mode, const rm
|
||||||
DOLOG(debug, true, "READ-I/O UNHANDLED read %08o (%c), (base: %o)", m_offset, word_mode ? 'B' : ' ', get_io_base());
|
DOLOG(debug, true, "READ-I/O UNHANDLED read %08o (%c), (base: %o)", m_offset, word_mode ? 'B' : ' ', get_io_base());
|
||||||
|
|
||||||
c->trap(004); // no such i/o
|
c->trap(004); // no such i/o
|
||||||
|
|
||||||
throw 1;
|
throw 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -422,6 +421,11 @@ uint16_t bus::read(const uint16_t addr_in, const word_mode_t word_mode, const rm
|
||||||
}
|
}
|
||||||
|
|
||||||
if (m_offset >= n_pages * 8192) {
|
if (m_offset >= n_pages * 8192) {
|
||||||
|
if (peek_only) {
|
||||||
|
DOLOG(debug, true, "READ from %06o - out of range!", addr_in);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
c->trap(004); // no such RAM
|
c->trap(004); // no such RAM
|
||||||
throw 1;
|
throw 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -563,6 +563,9 @@ void debugger(console *const cnsl, bus *const b, std::atomic_uint32_t *const sto
|
||||||
catch(const std::exception & e) {
|
catch(const std::exception & e) {
|
||||||
cnsl->put_string_lf(format("Exception caught: %s", e.what()));
|
cnsl->put_string_lf(format("Exception caught: %s", e.what()));
|
||||||
}
|
}
|
||||||
|
catch(const int ei) {
|
||||||
|
cnsl->put_string_lf(format("Problem: %d", ei));
|
||||||
|
}
|
||||||
catch(...) {
|
catch(...) {
|
||||||
cnsl->put_string_lf("Unspecified exception caught");
|
cnsl->put_string_lf("Unspecified exception caught");
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue