||4 years ago|
|ftplugin||8 years ago|
|indent||8 years ago|
|syntax||4 years ago|
|.gitignore||8 years ago|
|LICENSE||8 years ago|
|README.md||8 years ago|
Vim plugin for the
ca65 assembly language.
ca65 is a full-featured assembler for the MOS
6502 family of
microprocessors, which powered such historic platforms as the KIM I, Apple II,
Commodore 64, and Nintendo Entertainment System. It is a part of the popular
cc65 suite of development tools for the 6502,
which also includes a C compiler, linker, object dumper, etc.
designed both for direct use by assembly programmers and as the compilation
target of the
cc65 C compiler.
ca65 is especially used by "homebrew"
communities for the NES, SNES, etc.
The stock Vim runtime distribution includes syntax modules for several dialects
of assembly, as well as a "generic" module (which is really for the GNU
Assembler), none of which works particularly well with 6502 assembly
conventions, and especially not with
ca65's many added features.
- Syntax highlighting
- Highlights 6502 instruction mnemonics as keywords, with special highlighting for "illegal" instructions, and error highlighting for unknown (typo) instructions.
- Highlights all valid
ca65numeric and string literals, label definitions, and comments, with special highlighting for TODOs, FIXMEs, etc.
- Highlights all valid expression operators and control comands, with special
treatment for various classes of commands, including
.fileopt, segment names, includes, macro definitions, storage types, conditional assembly, linker control commands, structs, unions, procedures, pseudo-functions, some built-in macros, console output commands (
.warn, .etc.), and assembler behavior switches.
- Auto-indent under labels,
.ifstatements, macro definitions, macro call parameters, scopes, unions, and structs. Automatically de-dent when closing these structures.
- Auto-indent under labels,
- Filetype plugin
ca65comment syntax for Vim's automatic comment formatting features.
.macpackstatements for Vim's include-aware features.
asm_ca65.vimcurrently has no awareness of, or support for, assembler options that change the rules of valid labels, identifiers, and literals from their defaults, for example the following
.featureoptions and related command-line switches to
Installation and Usage
Install in the normal way (i.e., place the contents of the
ftplugin/ directories in corresonding locations in your vim runtime
path), or, if you use Pathogen, clone
this repository under
Everything is enabled by setting a buffer's
example, if all of your
ca65 assembly source files end with the
.inc., suffixes, the follwing suffices in your
filetype plugin indent on augroup filetypedetect au BufNewFile,BufRead *.s,*.inc set ft=asm_ca65 augroup END