DC11 fixes for base

This commit is contained in:
folkert van heusden 2024-04-30 00:34:05 +02:00
parent 4c903fb252
commit c4af62d6f8
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
4 changed files with 12 additions and 2 deletions

View file

@ -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 };

View file

@ -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
View file

@ -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;

View file

@ -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 };