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 };
|
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
|
if (a >= 0172100 && a <= 0172137) { // MM11-LP parity
|
||||||
DOLOG(debug, false, "WRITE-I/O MM11-LP parity (%06o): %o", a, value);
|
DOLOG(debug, false, "WRITE-I/O MM11-LP parity (%06o): %o", a, value);
|
||||||
return { false };
|
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;
|
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;
|
registers[reg] = v;
|
||||||
}
|
}
|
||||||
|
|
2
dc11.h
2
dc11.h
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
#define DC11_RCSR 0174000 // receiver status register
|
#define DC11_RCSR 0174000 // receiver status register
|
||||||
#define DC11_BASE DC11_RCSR
|
#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;
|
class bus;
|
||||||
|
|
||||||
|
|
5
main.cpp
5
main.cpp
|
@ -21,6 +21,7 @@
|
||||||
#include "disk_backend.h"
|
#include "disk_backend.h"
|
||||||
#include "disk_backend_file.h"
|
#include "disk_backend_file.h"
|
||||||
#include "disk_backend_nbd.h"
|
#include "disk_backend_nbd.h"
|
||||||
|
#include "dc11.h"
|
||||||
#include "gen.h"
|
#include "gen.h"
|
||||||
#include "kw11-l.h"
|
#include "kw11-l.h"
|
||||||
#include "loaders.h"
|
#include "loaders.h"
|
||||||
|
@ -580,6 +581,10 @@ int main(int argc, char *argv[])
|
||||||
cnsl->set_bus(b);
|
cnsl->set_bus(b);
|
||||||
cnsl->begin();
|
cnsl->begin();
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
dc11 *dc11_ = new dc11(b);
|
||||||
|
b->add_DC11(dc11_);
|
||||||
|
|
||||||
running = cnsl->get_running_flag();
|
running = cnsl->get_running_flag();
|
||||||
|
|
||||||
std::atomic_bool interrupt_emulation { false };
|
std::atomic_bool interrupt_emulation { false };
|
||||||
|
|
Loading…
Add table
Reference in a new issue