write bit in pdr
This commit is contained in:
parent
3e716dbca1
commit
c26e6f4853
1 changed files with 12 additions and 5 deletions
17
bus.cpp
17
bus.cpp
|
@ -399,6 +399,18 @@ void bus::addToMMR1(const int8_t delta, const uint8_t reg)
|
||||||
|
|
||||||
uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, const bool use_prev)
|
uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, const bool use_prev)
|
||||||
{
|
{
|
||||||
|
int run_mode = (c->getPSW() >> (use_prev ? 12 : 14)) & 3;
|
||||||
|
|
||||||
|
if (run_mode == 1 && c->get_34())
|
||||||
|
run_mode = 3;
|
||||||
|
|
||||||
|
if (MMR0 & 1) {
|
||||||
|
const uint8_t apf = a >> 13; // active page field
|
||||||
|
|
||||||
|
// TODO: D/I
|
||||||
|
pages[run_mode][0][apf].pdr |= 64;
|
||||||
|
}
|
||||||
|
|
||||||
if (a >= 0160000) {
|
if (a >= 0160000) {
|
||||||
if (word_mode) {
|
if (word_mode) {
|
||||||
assert(value < 256);
|
assert(value < 256);
|
||||||
|
@ -694,11 +706,6 @@ uint16_t bus::write(const uint16_t a, const bool word_mode, uint16_t value, cons
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
int run_mode = (c->getPSW() >> (use_prev ? 12 : 14)) & 3;
|
|
||||||
|
|
||||||
if (run_mode == 1 && c->get_34())
|
|
||||||
run_mode = 3;
|
|
||||||
|
|
||||||
uint32_t m_offset = calculate_physical_address(run_mode, a, true, true, false);
|
uint32_t m_offset = calculate_physical_address(run_mode, a, true, true, false);
|
||||||
|
|
||||||
DOLOG(debug, true, "WRITE to %06o/%07o: %o", a, m_offset, value);
|
DOLOG(debug, true, "WRITE to %06o/%07o: %o", a, m_offset, value);
|
||||||
|
|
Loading…
Add table
Reference in a new issue