Extension Details

- Motorola 68000 Additions
- by Maple Street Games
- 0 Recent Installs | 0 Total Installs
- 68000 assembly support: Tree-sitter syntax highlighting, symbols, folding, completions, the m68k-lsp language server, and vasm build tasks.
- Bug Reports
-
Read & Write Files
-
Launch Subprocesses
-
This extension is allowed to:
Readme
Motorola 68000 Additions adds support for Motorola 68000-family assembly language to Nova: the Amiga, Atari ST, Mega Drive/Genesis, Neo Geo, classic Mac, and anything else built around a 68k.
Features
- Syntax highlighting powered by Tree-sitter, covering 68000 through 68060, CPU32, and the 68881/68882 FPU. Branches, jumps, and returns stand out from other instructions. Highlighting also covers vasm and Devpac directives, size suffixes, every addressing mode, macros and their arguments (
\1,\@,narg), conditional assembly,reptblocks, local labels (.loop), and$hex,%binary, and@octalnumbers. - Symbols in the sidebar and jump bar for sections, labels, macros,
equ/=constants,rsstructure offsets, andequr/regregister aliases. - Folding for
macro…endm,rept…endr,rem…erem, andif…else…endcblocks. - Completions for instructions, directives, registers, size suffixes (type
move.to getb/w/l), labels and constants in the file, local labels, and snippets formacro,rept,ifd/ifnd/if, andsection. Completions match regardless of case, soMOVE.Lworks too. - Language server support via m68k-lsp: instruction and directive docs on hover, go to definition, find references, rename, formatting, register usage analysis, the value of constants shown inline, and errors from vasm as you type.
- vasm tasks: assemble with Nova's Build button (⌘B) into an Amiga executable, Atari ST program, raw binary, and more. Errors and warnings appear in the Issues sidebar and inline, even ones inside macros. Run (⌘R) can launch the result in an emulator.
Requirements
Highlighting, symbols, folding, and completions work out of the box.
For language server features, install Node.js 22.15 or later, then the server:
brew install node
npm install --global m68k-lsp-server
The server checks files with vasm. It uses a bundled WebAssembly copy of vasm unless it finds a real one.
For build tasks, you need vasmm68k_mot. Homebrew doesn't package it, so build it from source:
curl -LO http://sun.hasenbraten.de/vasm/release/vasm.tar.gz
tar xzf vasm.tar.gz && cd vasm
make CPU=m68k SYNTAX=mot
cp vasmm68k_mot /usr/local/bin/ # or anywhere on your PATH
The extension looks for both tools on your PATH, in Homebrew's prefix, and in npm, pnpm, Volta, and nvm global install directories. You can also set explicit paths in Extensions → Extension Library → Motorola 68000 Additions → Settings.
Usage
Project settings
In Project → Project Settings… → Motorola 68000 Additions, choose the target Processor, turn on the FPU if you use one, and add Include Paths. These feed completions, diagnostics, and vasm's -m and -I options. A .m68krc.json in the project overrides them for the language server, and also configures formatting.
vasm tasks
- Choose Project → Project Settings…, then click + under Tasks and pick vasm.
- Pick the Main Source File and Output Format. The output file defaults to the source's name with a fitting extension, such as
.prgor.bin. Amiga executables get no extension. - Use Build (⌘B) and Clean from the toolbar.
- To use Run (⌘R), set a Run Command such as an emulator binary or
.app.$OUTPUTin Run Arguments stands for the assembled file. Some examples:
| Target | Run Command | Run Arguments |
|---|---|---|
| Amiga (vAmiga, FS-UAE) | the emulator | depends on the emulator; many take the executable via a mounted folder |
| Atari ST (Hatari) | /Applications/Hatari.app |
$OUTPUT |
| Mega Drive (BlastEm) | blastem |
$OUTPUT |
Commands
- Extensions → Motorola 68000 Additions → Restart m68k-lsp restarts the language server.
Settings
| Setting | Description |
|---|---|
| Enable m68k-lsp | Turn the language server on or off. |
| m68k-lsp-server Path | Explicit path to the server. Empty means automatic. |
| Show Constant Values Inline | Show the evaluated value of equ/set/= constants. |
| vasm Path | Explicit path to vasmm68k_mot, used by tasks and diagnostics. |
| Check Files with vasm | Show vasm errors and warnings as you edit. |
Known limitations
- 68020+ bitfield operands (
bfextu d0{8:4},d1) aren't understood by the grammar yet; they get a parse error, but only within that operand. .sand.asmare shared with other assembly languages, so files with those extensions are claimed with a lower priority unless they look like 68k code. If one opens with the wrong syntax, choose 68000 Assembly from the syntax menu in the status bar.
Credits
The parser is tree-sitter-m68k by Graham Bates, used under the MIT License (see Syntaxes/tree-sitter-m68k-LICENSE.md). To rebuild it, run Tools/build-parser.sh. The language server is m68k-lsp-server, also by Graham Bates. vasm is by Volker Barthelmann and Frank Wille.
License
MIT. See LICENSE.
Release Notes
Version 1.0
Initial release.
- Tree-sitter syntax highlighting for Motorola 68000-family assembly (
.s,.asm,.i,.68k,.x68), built from tree-sitter-m68k 0.3.2: 68000–68060, CPU32, and 68881/68882 FPU instructions; vasm/Devpac directives; macros and macro arguments; conditional assembly;reptblocks - Symbols sidebar: sections, labels, macros,
equ/=constants,rsoffsets, andequr/regregister aliases - Code folding for macros,
rept,rem, andif/else/endcblocks - Completions for instructions, directives, registers, size suffixes, labels, and block snippets
- m68k-lsp language server integration (hover docs, go to definition, references, rename, formatting, vasm diagnostics)
- vasm task template with errors and warnings (including those inside macros) reported as issues, plus a configurable Run command for emulators
- 68k code blocks highlighted inside Markdown (
```m68k)
License
MIT License
Copyright (c) 2026 Maple Street Games
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.