Fix up clock timing on absolute-indexed, indirect-indexed, and branch instructions
Emitted clock ticks now match up with emulated and video recorded beep sound
(code to save off and postprocess ticks not checked in)
Add button class to interface
Check for press/drag/release of RESET button
Add FG and BG color for textport shader (for active button)
Handle RESET and REBOOT events in main loop
Multiply by a matrix in vertex shaders to convert from pixel
coordinates to window coordinates, moving that operation out to a
centralized place in the application.
Factor out shader binding for code simplification.
Factor out making vertex array in anticipation of UI buttons.
Change "mode" to "display_mode".
Fix setting of glViewport on window resize
-fast command-line option and "fast" debugger command enable 6502 to essentially run as fast as possible.
In "fast mode", execute approximately 10 seconds worth of instructions
before UI update.
Since UI update is probably locked to 60Hz max, upper limit will be 600x normal speed
But my guess is (on my Macbook Pro 13 Retina 2013) it's running about 70x,
so there's enough overhead to limit execution to ~70MHz.
Add lores shader and implement in redraw
Handle inverse text, but it indicates glyph lookup or raster location is off by one, not sure what's going on there.
Move to GL 3.2
Draw a quad with shaders depending on the mode in that part of the screen
HIRES shader reads from hires texture
TEXTPORT shader reads from textpor texture and indirects through a font
to get pixel values
MIXED now supported
Still to do: BLINK text, INVERSE text, LORES, gang up HGR memory updates
Why doesn't cursor flash the checkerboard?