Widget for Apple 2 screen (graphics and textport)
Make box be vertical or horizontal
Add spacer widget
Fix calls to draw, click, drag, release to reflect whole screen being a widget
Fix#16
GLFW doesn't pass through Mac CAPS lock key for some reason.
CAPS button in GUI works, though.
Implement more instructions, mostly for ChopLifter
DEC abs, X
INC abs, X
AND (ind), Y
AND abs, X
ROR abs
Now ChopLifter needs unimplemented SED! Probably uses decimal mode while printing score.
Set "then" at end of CPU loop to try to throttle better. Not sure it helps.
Fix ADC abs (was accidentally adding Y to address)
Also handle bank switch registers on write
Initialize CPU6502 registers to 0 to match fake6502
Avoid spurious differences
Implement more instructions
ADC (ind), Y
ADC abs, X
ORA zpg, X
Floppy disks partially work:
apple2e -noaudio -fast -diskII disk2romfile {floppy1name,"none"} {floppy2name,"none"} apple2e.rom
Import nybblizer from Shamus but only DOS
Support floppy hardware
track motor stepper
enable
read
Add -noaudio (otherwise execution is throttled by waits once audio buffer is filled)
Only read ROM at D000 and E000 if C08X_read_RAM isn't turned on
RAMRD, RAMWRT, and ALTZP are implemented, note them as such in constructor
Correctly decode C08X soft switches
Implement a bunch more instructions
INC abs
LDY abs, X
SBC abs, Y
ADC abs
ASL abs
LSR abs, X
ORA abs
ORA abs, X
AND abs, Y
STA (ind, X)
LDX abs
CPX abs
EOR (ind, X)
EOR abs
EOR abs, X
STX abs
Throttle to actual number of clocks per instruction
Temporarily enable "Fake6502" instead of my CPU because there's an obvious difference
Better blink speed in interface.cpp
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?