mirror of
https://github.com/TomHarte/CLK.git
synced 2024-07-22 15:28:56 +00:00
Add bonus notes on VPOSR.
This commit is contained in:
parent
3976420b88
commit
d989825216
@ -612,7 +612,16 @@ void Chipset::perform(const CPU::MC68000::Microcycle &cycle) {
|
|||||||
// Raster position.
|
// Raster position.
|
||||||
case Read(0x004): { // VPOSR; b15 = LOF, b0 = b8 of y position.
|
case Read(0x004): { // VPOSR; b15 = LOF, b0 = b8 of y position.
|
||||||
const uint16_t position = uint16_t(y_ >> 8);
|
const uint16_t position = uint16_t(y_ >> 8);
|
||||||
cycle.set_value16(position);
|
cycle.set_value16(
|
||||||
|
position |
|
||||||
|
(is_long_field_ ? 0x8000 : 0x0000)
|
||||||
|
);
|
||||||
|
|
||||||
|
// b8–b14 should be:
|
||||||
|
// 00 for PAL Agnus or fat Agnus
|
||||||
|
// 10 for NTSC Agnus or fat Agnus
|
||||||
|
// 20 for PAL high-res
|
||||||
|
// 30 for NTSC high-res
|
||||||
} break;
|
} break;
|
||||||
case Read(0x006): { // VHPOSR; b0–b7 = horizontal; b8–b15 = low bits of vertical position.
|
case Read(0x006): { // VHPOSR; b0–b7 = horizontal; b8–b15 = low bits of vertical position.
|
||||||
const uint16_t position = uint16_t(((line_cycle_ >> 1) & 0x00ff) | (y_ << 8));
|
const uint16_t position = uint16_t(((line_cycle_ >> 1) & 0x00ff) | (y_ << 8));
|
||||||
|
@ -253,6 +253,7 @@ class Chipset: private ClockingHint::Observer {
|
|||||||
bool hold_and_modify_ = false;
|
bool hold_and_modify_ = false;
|
||||||
bool dual_playfields_ = false;
|
bool dual_playfields_ = false;
|
||||||
bool interlace_ = false;
|
bool interlace_ = false;
|
||||||
|
bool is_long_field_ = false;
|
||||||
|
|
||||||
class BitplaneShifter {
|
class BitplaneShifter {
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user