Commit Graph

259 Commits

Author SHA1 Message Date
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
Brad Grantham
7ad39f891d Modified for interactivity
Added peek_key and clear_strobe so that an interrupt key can be
probed by main loop
2016-11-07 21:22:49 -08:00
Brad Grantham
421adb1f28 use disassembler 2016-11-07 21:22:21 -08:00
Brad Grantham
88bcde4977 disassembler in function 2016-11-07 21:22:08 -08:00
Brad Grantham
e5da87770c Add BVC, another ROR, CLV, apple2.rom runs further 2016-11-07 11:39:25 -08:00
Brad Grantham
ac5d0a6084 Merge branch 'master' of https://github.com/bradgrantham/apple2e 2016-11-07 10:46:04 -08:00
Brad Grantham
dabcc14703 Throttle to about 1MHz
Run about as many 6502 instructions as can run in .1 seconds running at 1MHz, measure the duration, and then sleep the difference between the duration and .1 seconds of wall clock time.
2016-11-07 10:44:29 -08:00
Lawrence Kesteloot
e82162163a Add disassembler, for reference. 2016-11-06 15:43:59 -08:00
Brad Grantham
65ef5c3b8d more instructions 2016-11-06 15:41:18 -08:00
Lawrence Kesteloot
cd7dd66e5e Integrate keyboard. 2016-11-06 14:37:20 -08:00
Brad Grantham
21a5e8f112 another LSR and another EOR 2016-11-06 14:18:17 -08:00
Brad Grantham
dcc884487e another LDA and another LDY 2016-11-06 14:14:17 -08:00
Brad Grantham
484c94df98 another SBC and another CPY 2016-11-06 14:10:46 -08:00
Lawrence Kesteloot
8a0a95e98e Add Apple 2e ROM from elsewhere. 2016-11-06 14:03:08 -08:00
Lawrence Kesteloot
c4506c80e5 Add keyboard module. 2016-11-06 13:57:48 -08:00
Brad Grantham
6951e81c35 more instructions 2016-11-06 13:55:29 -08:00