I've had a go at fixing most of the issues in this thread, and pushed new snapshot builds out here:
http://www.6809.org.uk/tmp/xroar/
Hopefully no regressions... The Address-Dependent CPU rate mode doesn't seem to
quite tally, but it's much closer.
This also includes new VDG code that copes with sub-scanline mode switching a lot more accurately. Specifically, it accounts for the fact that changes to CSS and !INT/EXT are delayed in relation to all the other mode select lines - this can be explored with the 'stripe' test from
http://www.6809.org.uk/tmp/da/tests/. Controls:
Code: Select all
; Video mode changing test.
; Timed to render a diagonal stripe across the screen using only
; mode changing.
; Controls:
; Up, Down, Left, Right - move stripe around by changing timings.
; 1, Q - Set/reset !A/G, GM2, GM1
; 2, W - Set/reset GM0 (and !INT/EXT)
; 3, E - Set/reset GM2, GM1 (switch between 32- and 16-byte graphic modes)
; 4, R - Set/reset CSS
; Enter - Cycle through different screen patterns
; Break - Return to BASIC
; Hold Shift to apply mode changes to background instead of stripe.
Another amusing extra is support for keyboard "ghosting" - test by holding down 'W' and 'S' and pressing Shift a few times. And note how Shift+Clear+/
doesn't generate a backslash, like on real hardware.