DC11 fixes for base
This commit is contained in:
parent
4c903fb252
commit
c4af62d6f8
4 changed files with 12 additions and 2 deletions
5
bus.cpp
5
bus.cpp
|
@ -966,6 +966,11 @@ write_rc_t bus::write(const uint16_t addr_in, const word_mode_t word_mode, uint1
|
|||
return { false };
|
||||
}
|
||||
|
||||
if (dc11_ && a >= DC11_BASE && a < DC11_END) {
|
||||
word_mode == wm_byte ? dc11_->write_byte(a, value) : dc11_->write_word(a, value);
|
||||
return { false };
|
||||
}
|
||||
|
||||
if (a >= 0172100 && a <= 0172137) { // MM11-LP parity
|
||||
DOLOG(debug, false, "WRITE-I/O MM11-LP parity (%06o): %o", a, value);
|
||||
return { false };
|
||||
|
|
2
dc11.cpp
2
dc11.cpp
|
@ -59,7 +59,7 @@ void dc11::write_word(const uint16_t addr, uint16_t v)
|
|||
{
|
||||
const int reg = (addr - DC11_BASE) / 2;
|
||||
|
||||
DOLOG(debug, false, "DC11: set register %06o (%d) to %o", addr, reg, v);
|
||||
DOLOG(debug, false, "DC11: write register %06o (%d) to %o", addr, reg, v);
|
||||
|
||||
registers[reg] = v;
|
||||
}
|
||||
|
|
2
dc11.h
2
dc11.h
|
@ -11,7 +11,7 @@
|
|||
|
||||
#define DC11_RCSR 0174000 // receiver status register
|
||||
#define DC11_BASE DC11_RCSR
|
||||
#define DC11_END (DC11_BASE + 4 * 4 + 2) // 4 interfaces, + 2 to point after it
|
||||
#define DC11_END (DC11_BASE + (4 * 4 + 1) * 2) // 4 interfaces, + 2 to point after it
|
||||
|
||||
class bus;
|
||||
|
||||
|
|
5
main.cpp
5
main.cpp
|
@ -21,6 +21,7 @@
|
|||
#include "disk_backend.h"
|
||||
#include "disk_backend_file.h"
|
||||
#include "disk_backend_nbd.h"
|
||||
#include "dc11.h"
|
||||
#include "gen.h"
|
||||
#include "kw11-l.h"
|
||||
#include "loaders.h"
|
||||
|
@ -580,6 +581,10 @@ int main(int argc, char *argv[])
|
|||
cnsl->set_bus(b);
|
||||
cnsl->begin();
|
||||
|
||||
// TODO
|
||||
dc11 *dc11_ = new dc11(b);
|
||||
b->add_DC11(dc11_);
|
||||
|
||||
running = cnsl->get_running_flag();
|
||||
|
||||
std::atomic_bool interrupt_emulation { false };
|
||||
|
|
Loading…
Add table
Reference in a new issue