-
Notifications
You must be signed in to change notification settings - Fork 38
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
Kick Assembler support #70
Comments
It kinda depends how far the support should reach. The basic syntax is easily doable. |
Would it be possible to perform syntax highlighting for Kick Assembler preprocessor directives (they all start with "#", see http://theweb.dk/KickAssembler/webhelp/content/apas02.html) and assembler directives (they all start with ".", see http://theweb.dk/KickAssembler/webhelp/content/apas04.html) and then add an option in C64 Studio to configure the location of the Kick Assembler executable? This executable would then need to be called when building the assembly via any of the build options in the Build menu. This will probably leave KickAssembler not as tightly integrated as the other assembly dialects you already support, but it would already be usable and a good alternative to Visual Studio Code and its Kick Assembler extensions. |
Syntax highlighting and directives would be easy. Note that debugging is probably pretty off then, as soon as scripting is added, as that requires C64Studio to know exactly which address maps to which part of the code. Unless KickAss could emit a code mapping file, similar to what Emscripten does. |
I'll have a look at the "custom" build step that you mentioned to get a feel for the current integration. Debug support is of course quite important, i.e. being able to step through the code line by line and watch the registers and how it affects a simultaneously running Vice. There is a Visual Studio Code extension which supports a debugger. I am not sure how it's done on a low level, but maybe this very same approach is something that C64 Studio could support as well in order to work around the debug problem that you pointed out, see https://marketplace.visualstudio.com/items?itemName=paulhocker.kick-assembler-vscode-ext#:~:text=Kick%20Assembler%208%2DBit%20Retro%20Studio%20is%20an%20open%2Dsource,using%20the%20awesome%20Kick%20Assembler%20. I used to do a lot of assembly coding in the early 90s - just getting back into it and comparing IDEs. Ideally I'd want to use a single IDE. Thanks for explaining what's possible and what would be problematic. |
Hi, I had another look at how the aforementioned Visual Studio handles Kick Assembler, Vice and C64 Debugger integration. When you start the compilation run in Visual Studio, it launches Kick Assembler. This generates both the .prg file as well as a debug dump file. The latter corelates the generated bytes and assembly source, see http://theweb.dk/KickAssembler/webhelp/content/cpt_QuickReference.html. This debug dump is then read by the C64Debugger. Here's an example.
Assembly run: Resulting Relevant is the Segment section. Start and end (inclusive) byte ranges are in cols 1 and 2, whereas the corresponding source line section is found in cols 4 and 6, respectively.
|
Nice! That looks easy enough to read, and also something C64Studio could provide for C64Debugger itself. Thanks! |
Glad it helped. If I can be of any further help with this, please let me know. I am keen to use Kick Assembler both as the Microsoft Visual Studio extension and as part of your excellent C64 Studio since you offer much more tooling around sound and image generation that the Visual Studio approach lacks. So would be really nice being able to open the same .asm files from both. |
Hi,
the combination of using MS Visual Code and a Kick Assembler plugin is becoming increasingly popular, see for example https://marketplace.visualstudio.com/items?itemName=sanmont.kickass-studio. Kick Assembler has a lot of feature which the assemblers currently supported by C64Studio lack.
Would it be possible to add Kick Assembler (http://theweb.dk/KickAssembler/Main.html#frontpage) support?
Thanks
Christian
The text was updated successfully, but these errors were encountered: