mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-16 18:30:32 +00:00
Stubs in a couple more registers.
PC now hits $0000. Likely a bug.
This commit is contained in:
parent
7e106c6add
commit
54352cb1cb
@ -87,7 +87,7 @@ uint8_t GLU::get_status() {
|
||||
// b0: 1 = command register is full (set when command is written); 0 = empty (cleared when data is read).
|
||||
const uint8_t status =
|
||||
(pending_response_.empty() ? 0 : 0x20); // Data is valid if a response is pending.
|
||||
printf("ADB get status : %02x\n", status);
|
||||
// printf("ADB get status : %02x\n", status);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
@ -391,6 +391,26 @@ class ConcreteMachine:
|
||||
// TODO: begin analogue channel charge.
|
||||
break;
|
||||
|
||||
// Monochome/colour register.
|
||||
case 0xc021:
|
||||
// "Uses bit 7 to determine whether composite output is colour 9) or gray scale (1)."
|
||||
if(is_read) {
|
||||
*value = video_->get_composite_is_colour() ? 0x00 : 0x80;
|
||||
} else {
|
||||
video_->set_composite_is_colour(!(*value & 0x80));
|
||||
}
|
||||
break;
|
||||
|
||||
// Language select. (?)
|
||||
case 0xc02b:
|
||||
if(is_read) {
|
||||
*value = language_;
|
||||
} else {
|
||||
language_ = *value;
|
||||
}
|
||||
break;
|
||||
|
||||
// Slot select.
|
||||
case 0xc02d:
|
||||
// b7: 0 = internal ROM code for slot 7;
|
||||
// b6: 0 = internal ROM code for slot 6;
|
||||
@ -580,6 +600,7 @@ class ConcreteMachine:
|
||||
uint8_t card_mask_ = 0x00;
|
||||
|
||||
bool test_mode_ = false;
|
||||
uint8_t language_ = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -281,3 +281,10 @@ void VideoBase::set_text_colour(uint8_t colour) {
|
||||
text_colour_ = appleii_palette[colour >> 4];
|
||||
background_colour_ = appleii_palette[colour & 0xf];
|
||||
}
|
||||
|
||||
void VideoBase::set_composite_is_colour(bool) {
|
||||
}
|
||||
|
||||
bool VideoBase::get_composite_is_colour() {
|
||||
return true;
|
||||
}
|
||||
|
@ -41,6 +41,9 @@ class VideoBase: public Apple::II::VideoSwitches<Cycles> {
|
||||
void set_border_colour(uint8_t);
|
||||
void set_text_colour(uint8_t);
|
||||
|
||||
void set_composite_is_colour(bool);
|
||||
bool get_composite_is_colour();
|
||||
|
||||
/// Sets the scan target.
|
||||
void set_scan_target(Outputs::Display::ScanTarget *scan_target);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user