C64 6502 Assembler
Table of Contents
Background
A bit where it all started…
6502 Development Now
First off … it’s all changed. Now it’s much easier than what it used to be. Cross assemblers were hard and complex at the best of times before but now… it’s just the new norm.
I am using a Mac and essentially the C64 development environment that I am using now includes the following:
- Kick Assembler. Great cross assembler.
- Sublime. Awesome text editor for the mac. Super powerful. Almost like emacs on Unix.
- Kick Assembler Sublime Package
- Retro Debugger. Awesome integrated debugger. Recent versions now have an integrated ‘windows’ based environment. Talking about getting full control and access to the C64 runtime.
- Vice Emulator. Awesome virtual Commodore emulator. Installed using Homebrew.
- KickC. KickC is a C-compiler for 6502-based platforms creating optimized and readable assembler code. The language is 95% standard C with a few limitations and a few extensions. Don’t really use this in anger but been used a few times.
- Crunchers with Kick Assembler.
- Exomizer Cruncher. Apparently there is a permanent home on Bitbucket for Exomizer. Old Github repo for Exomizer. An article on Codebase 64 on adding decrunch effects. Not tried that but looks interesting…
Command Line Environment
There’s a few nuances to setting this up for the mac. Here’s a few things for the .bash_profile environment given I am still using Bash for the command line.
##################################################
## Commodore 64 development pipeline stuff
##################################################
#export kickass_debug_path=/Applications/C64Debugger.app/Contents/MacOS/C64Debugger
#export kickass_run_args='-debugdump -time'
## Kick Assembler
alias kick="java -jar /Users/jskogsta/OneDrive/C64/assembler_programming_tools/mac_tools_local/KickAssembler/KickAss.jar"
## KickC
#export KICKC_HOME=/Users/jskogsta/local/kickc_0
export KICKC_HOME=/Users/jskogsta/OneDrive/C64/assembler_programming_tools/mac_tools_local/kickc_0
export KICKC_STDLIB_HOME="$KICKC_HOME/stdlib"
export KICKC_FRAGMENT_HOME="$KICKC_HOME/fragment"
export KICKC_JAR=$KICKC_HOME/lib/kickc-*.jar
The main thing to make note of is the first bit for Kick Assembler.