
TODO:

- NaN in cycle count for macros
- debugging of scan line overflow
- confuse code/data in listing
- show memory locations hovering over lines
- don't check against ROM signatures
- better errors when ROM format wrong
- debugging inside of bank switching??? relocated segs?
- support 6502 test cases
- DASM: macro forward refs
- asm: support macro expansion
- support narrow screens
- case sensisitvity looking for mismatch variables
- remove pulldown when no preset?
- can't step after reset (or when funky frame; TIA frame is out of sync)
- break on BRK/illegal opcode?
- multiple breakpoints, expression breakpoints
- better disasm/listing selection
- watchpoints
- breakpoints
- debug inspector
- MAME single step (?)
- step over
- slowdown beam for all platforms?
- kbd shortcuts
- PC x86 support
- show errors in list (maybe window list?)
- can't see 1st line in editor sometimes (when scrolling cursor past bottom of screen)
- online help
- show self-modifying code insns left of editor
- facade/kbd shortcuts for emulators, focus
- update Javatari version? (and others?)
- unify versioning
- disassembler for uploaded ROMs
- show tool-specific (readonly) include files
- verilog debugging/reloading makes it slow
- remove FPS and play controls when Verilog scope paused
- compile stuck when errors unchanged
- sound mute?
- $error updates source editor
- go to error in include files
- BOM in upload/download?
- online tools for music etc
- text log debugging script
- NES crt should mark raster pos when debugging
- intro/help text for each platform
- vscode/atom extension?
- navigator.getGamepads
- VCS library
- better VCS single stepping, maybe also listings
- New File (include file)
- VCS skips step on lsr/lsr after run to line
- bring back the profiler!
- links to external tools in ide
- error msg when #link doesn't work
- figure out folders for projects for real
- why loadState() on verilog kill perf?
- click to break on raster position
- restructure folders
- update memory browser window if view before 1st compile, update symbols
- spinner disappears sometimes (and compiles even when not spinning...) (undo?)
- z80 illegal opcode kills platform
- quantify verilog "graph iterations"
- debug bankswitching for funky formats
- "invalid ROM" error should show up better
- spaces in filename don't parse code listing (DASM, maybe more)
- zmac: item_lookup needs better hash function
- 'undefined' for bitmap replacer
- astrocade: run to cursor in hello world messes up emulation
- requestInterrupt needs to be disabled after breakpoint?


WEB WORKER FORMAT

{code,platform,tool,dependencies}
{preload}

new:

{updates,buildsteps}
[{filepath,platform,tool}]

implicit rules
- push/shift build steps
- preprocessor, compile, assemble, link
- access to intermediate files

only build files that have changed

build options


BUILD PROJECT

local/foo.project/*.*
build all files in project
send update for dependencies at startup (single file version)
should be able to change file w/o reloading (Not platform tho)

pulldown selects file in project, or goes back to parent
gotta preserve editor windows for each one - window list
make source/disasm window visible when debugging
gutter info/errors in all files



UI REFACTOR

editor
debugger
disasm view
memory
profile
errors

separate into files

window methods:
- set
- mode
- get
- changes
- cursorActivity (inspect)
- gutters (setCompileOutput)
- current line / gutter marker (setCurrentLine / clearCurrentLine)
- source map
- global symbols
- pixel editor / find comment (openBitmapEditorAtCursor)
- update debug window (200 ms)
- inspect variable

file store mirrors that on worker

worker result:
{
	output:<rom>
	sources:{
		<path>:{lines, asmlines, listing}
	}
}

add file to errors
