mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-19 23:29:05 +00:00
Ensures all 16 data lines reach the video.
This commit is contained in:
parent
c5ebf75351
commit
fda99d9c5f
@ -263,9 +263,9 @@ class ConcreteMachine:
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(cycle.operation & Microcycle::SelectByte) {
|
if(cycle.operation & Microcycle::SelectByte) {
|
||||||
video_->write(int(address), cycle.value->halves.low);
|
video_->write(int(address), uint16_t(cycle.value->halves.low << cycle.byte_shift()));
|
||||||
} else {
|
} else {
|
||||||
video_->write(int(address), cycle.value->halves.high);
|
video_->write(int(address), cycle.value->full);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -233,7 +233,7 @@ uint8_t Video::read(int address) {
|
|||||||
return 0xff;
|
return 0xff;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Video::write(int address, uint8_t value) {
|
void Video::write(int address, uint16_t value) {
|
||||||
LOG("[Video] write " << PADHEX(2) << int(value) << " to " << PADHEX(2) << (address & 0x3f));
|
LOG("[Video] write " << PADHEX(2) << int(value) << " to " << PADHEX(2) << (address & 0x3f));
|
||||||
address &= 0x3f;
|
address &= 0x3f;
|
||||||
switch(address) {
|
switch(address) {
|
||||||
@ -247,8 +247,10 @@ void Video::write(int address, uint8_t value) {
|
|||||||
case 0x20: case 0x21: case 0x22: case 0x23:
|
case 0x20: case 0x21: case 0x22: case 0x23:
|
||||||
case 0x24: case 0x25: case 0x26: case 0x27:
|
case 0x24: case 0x25: case 0x26: case 0x27:
|
||||||
case 0x28: case 0x29: case 0x2a: case 0x2b:
|
case 0x28: case 0x29: case 0x2a: case 0x2b:
|
||||||
case 0x2c: case 0x2d: case 0x2e: case 0x2f:
|
case 0x2c: case 0x2d: case 0x2e: case 0x2f: {
|
||||||
palette_[address - 0x20] = uint16_t((value & 0x777) << 5);
|
uint8_t *const entry = reinterpret_cast<uint8_t *>(&palette_[address - 0x20]);
|
||||||
break;
|
entry[0] = uint8_t((value & 0x700) >> 7);
|
||||||
|
entry[1] = uint8_t((value & 0x77) << 1);
|
||||||
|
} break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,7 @@ class Video {
|
|||||||
void set_ram(uint16_t *);
|
void set_ram(uint16_t *);
|
||||||
|
|
||||||
uint8_t read(int address);
|
uint8_t read(int address);
|
||||||
void write(int address, uint8_t value);
|
void write(int address, uint16_t value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Outputs::CRT::CRT crt_;
|
Outputs::CRT::CRT crt_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user