Commit Graph

224 Commits

Author SHA1 Message Date
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
ae04f41257 make UI more interactive in fast mode 2016-11-20 14:21:01 -08:00
Brad Grantham
d212e8f112 Allow running without TTY (e.g. in Instruments)
Continue running if TTY cannot be opened
2016-11-20 12:27:58 -08:00
Brad Grantham
9554f80a00 Allow option to free-run 6502 clock
-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.
2016-11-20 12:23:42 -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
dc48acbb32 generate HGR row interleaving 2016-11-18 23:29:57 -08:00
Brad Grantham
53455ad9f3 Ray-tracer 2016-11-18 23:26:22 -08:00
Brad Grantham
68c99726ca Draw lines mirrored in X and Y 2016-11-18 23:26:01 -08:00
Brad Grantham
e5d65591af Show all LORES colors 2016-11-18 23:25:48 -08:00
Brad Grantham
01d8b4e1b2 HIRES fractal 2016-11-18 23:25:22 -08:00
Brad Grantham
7821df7faf LORES bouncing pixel 2016-11-18 23:25:03 -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
00c4ea0a41 update to large-vertical-array format 2016-11-18 20:53:40 -08:00
Brad Grantham
d7d2d912b0 utility to extract C from font image 2016-11-18 11:33:50 -08:00
Brad Grantham
7b3fa24b2a speed softswitches by binning by address 2016-11-17 22:05:02 -08:00
Brad Grantham
a9f3df0320 Speed up memory accesses by binning by page 2016-11-17 21:50:09 -08:00
Brad Grantham
bc02e9ee6a speed up graphics writes 2016-11-16 23:47:07 -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
e5926d512e regularize interface to the display 2016-11-16 18:46:32 -08:00
Brad Grantham
17c38de074 Rudimentary GL window with keyboard support 2016-11-16 16:16:10 -08:00
Brad Grantham
f747675e22 URLS, not @ 2016-11-15 16:56:32 -08:00
Brad Grantham
fbd74448b7 @ mentions 2016-11-15 16:53:00 -08:00
Brad Grantham
f2e79b7ad2 Fix README formatting 2016-11-15 16:51:36 -08:00
Brad Grantham
71c05d2200 Expand README 2016-11-15 16:51:04 -08:00
Brad Grantham
a4724fb719 Make CTRL-RESET and OPENAPPLE-CTRL-RESET work
Add "reset" command to emulate CTRL-APPLE by invoking RESET
Add "reboot" command to emulate OPENAPPLE-CTRL-APPLE by invoking NMI
Add MAINboard::reset to set softswitches to power-on-defaults
Add bus_controller::reset
Implement 6502 IRQ, BRK, NMI
Add INC zpg, X
Add LDA (ind, X)
Add ADD abs
2016-11-15 10:39:38 -08:00
Brad Grantham
8804d363f8 use strcmp instead of == 2016-11-15 10:34:12 -08:00
Brad Grantham
d74e6f4f5d Better textport output and timing
Only output the textport every 16ms, and only if it's changed.
Be more consistent with throttling to ~1.023MHz by using a constant.
Fix bug where timeslice wasn't reduce when # of instructions was reduced
2016-11-14 13:41:57 -08:00
Brad Grantham
97f1091881 A free Apple //e font - use PrintChar21.ttf 2016-11-13 13:51:19 -08:00
Brad Grantham
3765decf3a another SBC 2016-11-13 12:41:13 -08:00
Brad Grantham
20863ee77c Line nums work, sin() works
Implement SBC zpg, X
Fix other SBCs
Implement LDX abs, Y
2016-11-12 14:41:11 -08:00
Brad Grantham
bfac8e9736 CPU fixes from "lockstep" branch; PRINT 5 works
Merge lots of instruction improvements and fixes
Lift keyboard processing out of MAINboard
Make disassembler return a string - could be inserted into a queue for
  later printing if desired
2016-11-12 13:20:10 -08:00
Brad Grantham
c52cb2939e Fix CX00 ROMs, implement alternate 6502
Add fake6502.c as alternate CPU implementation
Set up all regions in CX00 with softswitches according to my understanding of "Inside the Apple //e"
2016-11-11 15:18:08 -08:00
Brad Grantham
249328b256 Tighten unhandled banking
Add "banking" debugger command to exit the next time a bank is switched
Add abort_on_memory_fallthrough flag to force exit if memory access unhandled
Consolidate flag changes for SBC and ADC to "set_flags" command
Change "sw" member of SoftSwitch to "enabled" for readability
Change name of c{1,3}00_rom to rom_C{1,3}00 for consistency with rom_{D,E}000
Mark HIRES and MIXED flags as implemented; let them be caught in display
Add DEBUG_WARN flag
2016-11-11 05:54:59 -08:00
Brad Grantham
32899bad46 Merge branch 'master' of https://github.com/bradgrantham/apple2e 2016-11-10 19:33:35 -08:00
Brad Grantham
3056f0fcd0 implement bank-switching; not fully tested 2016-11-10 19:33:27 -08:00
Lawrence Kesteloot
68822ed327 Revert "Make ESC quit."
This reverts commit 67df4b1f56.
2016-11-09 12:10:08 -08:00
Lawrence Kesteloot
67df4b1f56 Make ESC quit. 2016-11-09 12:05:28 -08:00
Brad Grantham
a1c57ac947 fix textport 2016-11-09 07:05:18 -08:00
Brad Grantham
4e4c957704 compile on Linux; clean up on exit 2016-11-09 03:46:26 -08:00
Brad Grantham
635259549a Fix SZP, implement C3ROM
SZP is a RAM, not a ROM
Improve backed_region by using a RAM/ROM enum instead of a readonly boolean
irom is now i1rom (backing 0xC100)
Add i3rom backing 0xC300 and implement C3ROM switch
Add -debugger flag to start in the debugger
Don't step CPU when "debug" command processed
Remove "go_verbose" function
2016-11-08 21:43:01 -08:00
Brad Grantham
4d77ec6bb1 Improve encapsulation of backed_region
Allow a lambda to enable or disable the region
pass a name
Put them in a vector on initialization so they can be probed in a for loop

Currently has a bug - regresses
2016-11-08 16:41:30 -08:00
Brad Grantham
c02145836d Add memory_region object
is a region but has optionally readonly backing-store
2016-11-08 13:35:35 -08:00
Brad Grantham
dcefd4282c ignore objects 2016-11-08 13:23:26 -08:00
Brad Grantham
24853393ea Clean up instruction loop, more cleaning up
"clean" Makefile target
Rearrange DEBUG constants so least bits trigger output with most impact
New "implemented" bool SoftSwitch
Add page2 handling to textport (untested)
Separate out "region" encapsulating address start and end for convenience
Factor out "set_flags()" for most common "flag_change()" sequences
Move comment with instruction opcode onto case for compactness
Remove old disassembly in favor of open source disassembly
2016-11-08 13:22:46 -08:00