empathicqubit/vscode-cc65-debugger

More support for assembler please

Closed this issue · 9 comments

I would like to see more support for assembler projects.

A majority of 8-bit development is in assembler rather than c I would expect.

I would like to see support for:

  • assembler variables
  • labels in tooltip
  • watch window
  • assembler constants/.defines in mouse tooltip
    a call-stack based on jsr/rts instructions

I think these are all available from the VICE monitor as I used to load all of them from the .lbl file e.g.
ld65 -Ln prog.lbl
vice.exe -moncommands prog.lbl

I also see them in your .dbg file.

The other c functionality would be nice GotoDefinition, Find All References, Rename etc...

This is supported well enough by other extensions

For an idea, look at Alchemy65 that seems to offer a lot of this, but unfortunately doesn't work with VICE.

I don't think I'll be changing the call stack, but I will look at the other stuff. If you want a different call stack you can use VICE's monitor. It should open in a MinTTY window.

A majority of 8-bit development is in assembler rather than c I would expect.

Yes, that is why I wrote this extension, because there are a jillion others to support assembly already, and I wanted to write code in C with some assembly for the timing sensitive parts.

Please also provide a code sample and detail exactly what you are expecting from it

For C code parsing please install the extension llvm-vs-code-extensions.vscode-clangd . This should already be recommended by the project. You also will need llvm. Easiest way to install would be choco install llvm. I will readd this information to the README. I used to require it for the debugger type handling to work, but I removed it because I thought it was no longer necessary.

Okay, I see that you are mainly targeting 'c' development.

The other plug-in that seems to do exactly what I want is Alchemy65, but that is unfortunately restricted to the NES currently.

No worries, thanks for you contribution to the community anyway.

Feel free to close.

Could you provide a code sample please? That would help me to add the features you want.

An alternative would be for you to add the features and create a pull request. I am working full time when I wasn't when I started this, so I'm a bit limited with what I can do with this project now. I have no issue with incorporating what you want, but my time is limited and I also have another person wanting to add an entirely different emulator into this who I've been trying to support, albeit also in a mostly hands-off way.

If you make a PR please don't use code from Alchemy65. I'm not sure about the legal implications, even though it's the same license.

No worries. I understand. I am also working full time and writing retro code in spare time so not sure I'll have time. I understand there's no obligation to do anything in response to feature requests etc as you are not charging for it.

I actually ran your ASM project and did notice some of the variables listed under static+ but they don't show for my project so I will have a look and try to figure out what's different. That just leaves the call-stack missing which as you say I can look at in VICE.

Once again thanks for this.

I added a new variable scope in v6.8.0 which may contain more of what you want. It gets included in the evaluation context, so it will show up on hover and in equations.