Commit Graph

23 Commits

Author SHA1 Message Date
Brad Grantham
91e8aaf726 Widgets draw in area, and implement centering widget, fixing #7 and fixing #6 2016-11-28 18:43:53 -08:00
Brad Grantham
577a806799 Key repeat, fixes #21 2016-11-28 17:17:57 -08:00
Brad Grantham
ca376dab5a CAPS lock, More instructions and compatibility
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.
2016-11-28 14:22:22 -08:00
Brad Grantham
604bf07b4f Partially implement floppy disks
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
2016-11-27 17:10:03 -08:00
Brad Grantham
97e5923939 fix paste to only work with SUPER key (CMD on Mac), fix #4 2016-11-23 22:20:04 -08:00
Brad Grantham
e9453b7fe7 use RED_INTEGER instead of RED_INTEGER_EXT, lose glext.h 2016-11-23 21:15:39 -08:00
Brad Grantham
df043ec9a0 fixup font lookup, solving off-by-one-pixel issue 2016-11-23 15:43:57 -08:00
Brad Grantham
4db793add1 PAUSE button works, CAPS and COLOR unimplemented 2016-11-23 10:53:56 -08:00
Brad Grantham
ff9f29ef9d name size getter more correctly; add some notes 2016-11-23 10:34:15 -08:00
Brad Grantham
f204764575 Add buttons for REBOOT, FAST
Factor out "text_widget" that can draw text
Change "button" widget to "momentary"
Add new "toggle" widget
Use vbox to contain all buttons
2016-11-22 20:02:49 -08:00
Brad Grantham
7f8539ae00 Add RESET button
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
2016-11-22 16:09:48 -08:00
Brad Grantham
8103d2a10f Correctly issue "lores" shader uniforms 2016-11-22 09:49:58 -08:00
Brad Grantham
faea049a6b Screen projection matrix to shaders for regularity
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.
2016-11-21 18:56:31 -08:00
Brad Grantham
c9cf0a753a remove debugging border 2016-11-20 14:25:18 -08:00
Brad Grantham
5a3c9deb21 Fix viewport. Some factoring.
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
2016-11-20 14:21:49 -08:00
Brad Grantham
eec4926c50 properly output and use checkerboard char 2016-11-19 00:57:42 -08:00
Brad Grantham
32854e2246 implement paste through interface 2016-11-19 00:45:39 -08:00
Brad Grantham
7192c35a42 blink text 2016-11-18 23:55:28 -08:00
Brad Grantham
21e800658c LORES ("GR") mode and inverse text
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.
2016-11-18 23:17:07 -08:00
Brad Grantham
cabfe5191e Mostly rewrite graphics to use shaders
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?
2016-11-18 20:54:19 -08:00
Brad Grantham
dac35cccb1 hires graphics in a separate window 2016-11-16 22:50:09 -08:00
Brad Grantham
33a78aabe9 Support Quit on window, clean up a little 2016-11-16 18:54:56 -08:00
Brad Grantham
17c38de074 Rudimentary GL window with keyboard support 2016-11-16 16:16:10 -08:00