{"id":19510273,"url":"https://github.com/maxbane/vim-asm_ca65","last_synced_at":"2025-04-26T03:32:12.169Z","repository":{"id":25468368,"uuid":"28898817","full_name":"maxbane/vim-asm_ca65","owner":"maxbane","description":"Vim syntax highlighting for the ca65 assembler","archived":false,"fork":false,"pushed_at":"2023-08-07T11:30:22.000Z","size":175,"stargazers_count":44,"open_issues_count":3,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-04T07:35:55.482Z","etag":null,"topics":["6502","6502-assembly","apple2","assembler","c64","ca65","commodore-64","nes","nintendo","syntax-highlighting","vim"],"latest_commit_sha":null,"homepage":"","language":"Vim Script","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"kapooramanpreet/CEN3031-GitWorkflow","license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/maxbane.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-07T04:50:01.000Z","updated_at":"2024-12-06T14:12:48.000Z","dependencies_parsed_at":"2023-02-18T16:45:22.145Z","dependency_job_id":null,"html_url":"https://github.com/maxbane/vim-asm_ca65","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbane%2Fvim-asm_ca65","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbane%2Fvim-asm_ca65/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbane%2Fvim-asm_ca65/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxbane%2Fvim-asm_ca65/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/maxbane","download_url":"https://codeload.github.com/maxbane/vim-asm_ca65/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250926880,"owners_count":21509053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["6502","6502-assembly","apple2","assembler","c64","ca65","commodore-64","nes","nintendo","syntax-highlighting","vim"],"created_at":"2024-11-10T23:15:22.488Z","updated_at":"2025-04-26T03:32:11.915Z","avatar_url":"https://github.com/maxbane.png","language":"Vim Script","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vim-asm_ca65\nVim plugin for the `ca65` assembly language.\n\n## Purpose\n\nThis repository provides a [Vim](http://www.vim.org/)\nsyntax-highlighting plugin, auto-indent plugin, and filetype plugin for the\n[`ca65`](http://cc65.github.io/doc/ca65.html) assembly language.\n\n`ca65` is a full-featured assembler for the [MOS\n6502](https://en.wikipedia.org/wiki/MOS_Technology_6502) family of\nmicroprocessors, which powered such historic platforms as the KIM I, Apple II,\nCommodore 64, and Nintendo Entertainment System. It is a part of the popular\n[`cc65`](https://github.com/cc65/cc65) suite of development tools for the 6502,\nwhich also includes a C compiler, linker, object dumper, etc. `ca65` is\ndesigned both for direct use by assembly programmers and as the compilation\ntarget of the `cc65` C compiler. `ca65` is especially used by \"homebrew\"\ncommunities for the [NES](http://nesdev.com), SNES, etc.\n\nThe stock Vim runtime distribution includes syntax modules for several dialects\nof assembly, as well as a \"generic\" module (which is really for the GNU\nAssembler), none of which works particularly well with 6502 assembly\nconventions, and especially not with `ca65`'s many added features.\n\n## Features\n\n* Syntax highlighting\n    * Highlights 6502 instruction mnemonics as keywords, with special highlighting\n      for \"illegal\" instructions, and error highlighting for unknown (typo)\n      instructions.\n    * Highlights all valid `ca65` numeric and string literals, label\n      definitions, and comments, with special highlighting for TODOs, FIXMEs, etc.\n    * Highlights all valid expression operators and control comands, with special\n      treatment for various classes of commands, including `.fileopt`, segment\n      names, includes, macro definitions, storage types, conditional assembly,\n      linker control commands, structs, unions, procedures, pseudo-functions, some\n      built-in macros, console output commands (`.out`, `.warn`, .etc.), and\n      assembler behavior switches.\n* Auto-indent\n    * Auto-indent under labels, `.proc`s, `.if` statements, macro definitions,\n      macro call parameters, scopes, unions, and structs.  Automatically\n      de-dent when closing these structures.\n* Filetype plugin\n    * Defines `ca65` comment syntax for Vim's automatic comment formatting features.\n    * Recognizes `.include`, `.incbin`, and `.macpack` statements for Vim's\n      include-aware features.\n\n### Examples (screenshots)\n\n#### Solarized colorscheme\n![](https://raw.githubusercontent.com/maxbane/vim-syntax-asm_ca65/screenshots/sshot0-solarized.png)\n\n![](https://raw.githubusercontent.com/maxbane/vim-syntax-asm_ca65/screenshots/sshot1-solarized.png)\n\n#### Elflord colorscheme\n![](https://raw.githubusercontent.com/maxbane/vim-syntax-asm_ca65/screenshots/sshot0-elflord.png)\n\n![](https://raw.githubusercontent.com/maxbane/vim-syntax-asm_ca65/screenshots/sshot1-elflord.png)\n\n## Limitations\n\n* `asm_ca65.vim` currently has no awareness of, or support for, assembler\n  options that change the rules of valid labels, identifiers, and literals from\n  their defaults, for example the following `.feature` options and related\n  command-line switches to `ca65`.\n  * `.feature at_in_identifiers`\n  * `.feature dollar_in_identifiers`\n  * `.feature labels_without_colons`\n  * `.feature underline_in_numbers`\n\n## Installation and Usage\n\nInstall in the normal way (i.e., place the contents of the `syntax/`, `indent`/\nand `ftplugin/` directories in corresonding locations in your vim runtime\npath), or, if you use [Pathogen](https://github.com/tpope/vim-pathogen), clone\nthis repository under `~/.vim/bundle/`.\n\nEverything is enabled by setting a buffer's `filetype` to `asm_ca65`. For\nexample, if all of your `ca65` assembly source files end with the `.s` and\n`.inc` suffixes, the follwing suffices in your `.vimrc`:\n\n```vim\nfiletype plugin indent on\naugroup filetypedetect\n    au BufNewFile,BufRead *.s,*.inc set ft=asm_ca65\naugroup END\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbane%2Fvim-asm_ca65","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxbane%2Fvim-asm_ca65","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxbane%2Fvim-asm_ca65/lists"}