Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0 TODO #1

Closed
38 of 39 tasks
floooh opened this issue Nov 15, 2023 · 0 comments
Closed
38 of 39 tasks

1.0 TODO #1

floooh opened this issue Nov 15, 2023 · 0 comments
Assignees

Comments

@floooh
Copy link
Owner

floooh commented Nov 15, 2023

  • pre-release readme
  • emulator imgui: using the memory editor address field blocks further input => this is because the Emscripten backend is sending focused/unfocused events for some reason when a text input field is activated (fixed by removing all that hacky mobile keyboard code from the sokol_app.h emscripten backend)
  • web extension problems:
    • transfer of KCC ArrayBuffer doesn't work: the size is 191 bytes (should be 182), and the header (or all content?) seems to be zero => this seems to be a difference/bug of VSCode when transferring ArrayBuffer objects. Works in the native version, breaks on the web. Fixed by explicitly sending the data as base64 encoded string.
  • disable F5 and F7 key bindings unless the extension is active => changed to .asm file loaded
  • failing to build must be more obvious
  • add back extensionDependency on vscode-wasm (the missing piece was to publish the KC IDE extension also as a pre-release version, this will then automatically install pre-release versions for the dependencies too)
  • allow to click on emulator canvas to activate tab (need to pass through mouse clicks?)
  • emulator and vscode are fighting over function keys (e.g. try to debug in emulator) (hmm... consuming the events in the emulator doesn't appear to help) => partly sovled by disabling function keys in package.json when emulator webview panel is active.
  • input problem: when debugging in emulator, the emulator sends a stopped event, which in turn causes the text editor to become active, which in turn activates function keys again :/ => ideally the vscode side would update, but not focus the text editor panel => this is possible by setting the .body.preserveFocusHint on the StoppedMessage, NOTE doesn't make sense to set preserveFocusHint when emulator panel is active, this breaks when clicking on the UI debug controls. Instead the emulator would need to send information with the stopped-event whether the internal debugger was used. Messy. NOTE: conditionally disabling the function keys in package.json when the webview panel is active also doesn't work reliably => fixed by binding a function to those keys which focuses the emulator tab again when VSCode steals the focus
  • when starting a debug session via F5, the code isn't rebuilt (since it will directly start a debug session without going through the Debug command => fix this with a prelaunch-task in launch.json? this would be the "standard way" fixed by removing launch.json support and directly binding F5 key to the debug command)
  • debug adapter
    • implement memory views (read-only for now)
    • in the chips debugger, prefix detection when scanning backwards also needs to check for double-prefixes ddcb and fdcb (no separate code path is actually needed for this, since CB is the regular opcode byte in this case)
    • setting source breakpoints on Windows is broken again
    • waiting for the emulator to be ready seems to be broken again :/
    • fix run-state in call stack panel (stop-reason)
    • print the current address in call stack panel
    • fix breakpoint names
    • setting breakpoints doesn't work on Windows (most likely converting source file paths to workspace local paths)
    • restart debug session currently doesn't work
    • in the variable view, add a visual Flags: --Z-C---' line line
    • implement register view
    • code cleanup (merge DebugRuntime class into DebugSession)
    • debug adapter should properly wait for emulator to become ready (by polling a new "webapi_ready()" call)
    • implement batch update and deleting of breakpoints
    • figure out a way to automatically stop debug session
    • somehow deal with stepping out of source code into operating system code (investigate debug adapter "DisassembleRequest" and "Instruction Breakpoints")
    • when pressing F5 for the first time and the debug provider drop down shows up, nothing happens when selecting the KCIDE debug provider (or does it just take a while???)
    • debugger doesn't connect in the browser version, communicating breakpoints works, but that's it...
  • language server too much work for little in return
  • allow emulator to go into sleep/freeze mode to preserve battery
  • extension icon
  • remove blinking audio icon
  • extension doesn't find commands unless there's a kcide.project.json (doesn't activate properly when just invoking a command?)
  • asmx: add debug-map output (map addresses to source+line-nr)
  • asmx: add an include-root argument
  • figure out how to make debug adapter work in web extension (@vscode/debugadapter has node.js dependencies) => fixed by using browser polyfills for url and process when building for web
  • what's up with the weird stuttering in the emulator webpanel... maybe related to passing through input events now? (hadn't noticed that before). PS: on Windows it looks fine. (seems to happen only when Spotify is also open - spooky action at a distance?)
@floooh floooh self-assigned this Nov 15, 2023
@floooh floooh closed this as completed Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant