mirror of
https://github.com/bradgrantham/apple2e.git
synced 2024-12-28 08:29:40 +00:00
reorder notes to reflect todo
This commit is contained in:
parent
332dca17de
commit
984c2abad6
100
notes
100
notes
@ -1,59 +1,32 @@
|
|||||||
per-scanline modes
|
cleanup:
|
||||||
Actual Apple II TEXT/GR and HGR video address patterns are in Understanding the Apple II
|
use board::sync() to batch up and send display writes, audio updates, and display mode changes
|
||||||
Not for DHGR or 80-col but they're probably just same address twice alternating banks
|
separate out APPLE2Einterface from board
|
||||||
tracking clock and reporting video memory contents
|
pass just mode flags in vector presized to, let's say, 16?
|
||||||
clock
|
translate in lambda before passing to APPLE2Einterface
|
||||||
one tick of ~1MHz clock maps to one tick of address counter
|
templatize Board?
|
||||||
so is 7 HGR bits or one GR/TEXT horizontal cell
|
deglobalize where possible
|
||||||
"most 6502 cycles are 978 nS long [14 14mhz clocks], but every 65th cycle is 1117 nS long [16 14mhz clocks]."
|
lower and underscores throughout
|
||||||
source clock is 14.31818MHz
|
audio popping
|
||||||
unsigned long would overflow after 20 minutes
|
Mockingboard
|
||||||
Could modulo byteclock by 14318180 at iterate() and not overflow
|
DHGR
|
||||||
as long as it doesn't take longer than 20 minutes between calls to APPLE2Einterface::iterate than 20 minutes...)
|
colors bleed incorrectly
|
||||||
Could have clk be in 14MHz ticks.
|
probably could convert color on CPU to make it slightly easier
|
||||||
unsigned long long will last 40853 years (could be slow on embedded systems)
|
Run this software then purge fake6502:
|
||||||
Keep track of phase at clk delta time, and add 14 usually but 16 every 65th
|
ProDOS
|
||||||
Then wall clock is just always ticks / 14318180.0
|
LodeRunner
|
||||||
phase_hpe initially 0
|
ChopLifter
|
||||||
add_cpu_cycles(elapsed_cpu) {
|
Digitizer
|
||||||
clock_cpu += elapsed_cpu
|
Plasmania
|
||||||
clock_14mhz = elapsed_cpu * 14 + (elapsed_cpu + phase_hpe) / 65 * 16
|
Christmas Carols
|
||||||
phase_hpe = (phase_hpe + elapsed_cpu) % 65
|
Data Capture //e
|
||||||
}
|
Contiki no network
|
||||||
clock_14mhz is 14mhz ticks
|
Idiom Translator
|
||||||
clock_cpu is CPU clocks, averaging 1.023MHz
|
Pascal - Brad's Disk
|
||||||
phase_hpe is clock_cpu within horizontal line
|
...?
|
||||||
Current CPU clk (in 1MHz CPU cycles) is used for
|
|
||||||
which audio sample (at libAO sample rate) in the audio waveform we should fill
|
|
||||||
OK - should work with higher fixed rate
|
|
||||||
mark after how many cycles the open apple key should be raised
|
|
||||||
OK - should work with higher fixed rate
|
|
||||||
mark paddle timer
|
|
||||||
OK - should work with higher fixed rate
|
|
||||||
incrementing CPU instruction cycles
|
|
||||||
OK - call add_cpu_cycles()
|
|
||||||
address generator
|
|
||||||
every line is 65 bytes, there are 262 lines, so there are 17030 bytes per field
|
|
||||||
honor softswitches
|
|
||||||
convert clock_cpu to address
|
|
||||||
blanking and offscreen addressing during HIRES MIXED
|
|
||||||
160 through 191 and 224 through 261
|
|
||||||
TEXT addressing at 160, HPE' + 1 through at 192, HPE'
|
|
||||||
argh
|
|
||||||
read empty memory address on bus no longer fails but instead
|
|
||||||
generate address, get byte from RAM and return it
|
|
||||||
recording softswitch mode changes
|
|
||||||
store vector of switch or mode change and byteclock
|
|
||||||
instead of setting before APPLE2Einterface::iterate, pass into iterate
|
|
||||||
honoring softswitch change in APPLE2Einterface
|
|
||||||
initialize scanline mode array to text
|
|
||||||
receive vector of tuple of byteclock and modes
|
|
||||||
fill scanline mode array from passed in vector
|
|
||||||
draw framebuffer by scanline
|
|
||||||
|
|
||||||
final release:
|
final release:
|
||||||
help screen
|
help screen?
|
||||||
gamepad calibration screen (for desktop GLFW anyway)
|
gamepad calibration screen (for desktop GLFW anyway)?
|
||||||
need to handle asynchronous gamepad arrival (a la HTML5)
|
need to handle asynchronous gamepad arrival (a la HTML5)
|
||||||
screenshots for README.md
|
screenshots for README.md
|
||||||
link to emscripten version
|
link to emscripten version
|
||||||
@ -76,25 +49,6 @@ emscripten:
|
|||||||
GLFW - gamepad using HTML5 gamepad interface
|
GLFW - gamepad using HTML5 gamepad interface
|
||||||
note that it doesn't show up until initially used
|
note that it doesn't show up until initially used
|
||||||
|
|
||||||
cleanup:
|
|
||||||
deglobalize where possible
|
|
||||||
lower and underscores throughout
|
|
||||||
exceptions?
|
|
||||||
tableize 6502?
|
|
||||||
|
|
||||||
Run this software, purge fake6502:
|
|
||||||
ProDOS
|
|
||||||
LodeRunner
|
|
||||||
ChopLifter
|
|
||||||
Digitizer
|
|
||||||
Plasmania
|
|
||||||
Christmas Carols
|
|
||||||
Data Capture //e
|
|
||||||
Contiki no network
|
|
||||||
Idiom Translator
|
|
||||||
Pascal - Brad's Disk
|
|
||||||
...?
|
|
||||||
|
|
||||||
apple2e -diskII diskII.c600.c67f.bin ~/Downloads/LodeRunner.dsk none apple2e.rom < /dev/null
|
apple2e -diskII diskII.c600.c67f.bin ~/Downloads/LodeRunner.dsk none apple2e.rom < /dev/null
|
||||||
|
|
||||||
Actual ROM files that are in our Apple IIe, and run Brad's sound digitizer:
|
Actual ROM files that are in our Apple IIe, and run Brad's sound digitizer:
|
||||||
|
Loading…
Reference in New Issue
Block a user