v6vscode
VS Code extension for the Vector-06c (Вектор-06Ц) retro computer. Assemble, build, and run programs directly from the editor.

Features
- Syntax highlighting for Intel 8080 assembly (
.asm, .inc files)
- Include navigation — Ctrl+click on
.include "..." directives
- V6: Create Project — scaffolds a new project (source, Makefile, project config) with ASM/C and ROM/FDD options
- V6: Run Project — launches or hot-reloads the emulator, opens the display panel
- v6emul tools view — the
v6emul Activity Bar container, also available through View > Open View... > v6emul, toggles Settings, Display, Hex Viewer, Memory Edits, Performance, Trace Log, Scripts, Symbols, Ports, and Watchpoints editor panels
- Display panel — focused canvas display with keyboard forwarding; execution control stays in VS Code's debug toolbar
- Emulator Settings panel — changes and persists Speed and Display mode
- Standalone debug tools — full-size Hex Viewer, Memory Edits, Performance, Trace Log, Scripts, Symbols, Ports, and Watchpoints editor panels
- FPS counter — live frames-per-second display in the status bar (bottom-right) while the emulator is running
- FDD persistence — automatically saves modified floppy disk images back to disk on stop (unless
fddReadOnly is set)
Quick Start
- Install the extension from a
.vsix file: code --install-extension v6vscode-0.1.0.vsix
- Open a folder in VS Code.
- Run V6: Create Project from the Command Palette (
Ctrl+Shift+P).
- Enter a project name, choose a language (ASM or C), and an executable type (ROM or FDD).
- Build:
make in the terminal.
- Run V6: Run Project — the emulator launches and shows the display panel.
Prerequisites
VS Code 1.100.0 or later is required (the verified extension-host runtime and selected debug stack-frame APIs).
The extension no longer bundles any binary. The following tools must be installed separately:
| Tool |
Purpose |
Download |
v6emul |
Vector-06c emulator |
Releases |
v6asm |
Intel 8080 assembler |
Releases |
v6fdd |
FDD image builder |
Releases |
v6c |
C compiler (optional) |
Releases |
Set V6EMUL to the full path of the emulator executable. This is the extension's only external-tool configuration. Restart VS Code after changing a persistent environment variable.
The extension does not invoke v6asm or v6fdd. Generated Makefiles use the commands from PATH by default and accept optional V6ASM and V6FDD overrides in the build environment.
Commands
| Command |
Description |
V6: Create Project |
Scaffold a new Vector-06c project |
V6: Run Project |
Build → launch → display emulator |
v6emul: Settings |
Toggle emulator settings |
v6emul: Display |
Toggle emulator display |
v6emul: Hex Viewer |
Toggle the standalone memory viewer |
v6emul: Memory Edits |
Add and manage tracked byte edits, Auto-update, and restore actions |
v6emul: Performance |
Toggle server-owned CodePerf ranges and statistics |
v6emul: Trace Log |
Filter and virtually scroll retained paused execution history |
v6emul: Scripts |
Manage, compile, and run server-owned Lua scripts |
v6emul: Symbols |
Toggle symbol search and navigation |
v6emul: Ports |
Toggle the standalone I/O ports viewer |
v6emul: Watchpoints |
Toggle the standalone watchpoint editor |
Settings
| Setting |
Type |
Default |
Description |
v6.logLevel |
enum |
"info" |
Logging level: error, warn, info, debug |
Project File
Each project is defined by a *.project.json file at the workspace root:
{
"name": "demo",
"run": {
"executable": "out/demo.rom",
"debugArtifact": "out/demo.elf",
"speed": "100%",
"viewMode": "borderless"
}
}
Generated C projects use -O0 -g and create this companion ELF for source-level C debugging. See docs/README.md for the full schema, supported C metadata, and architecture details.
Building from Source
npm install
npm run compile
Packaging
npm run package # produces v6vscode-<version>.vsix
npm run publish:dry-run # verify, package and validate; publishes nothing
See docs/publishing.md for Marketplace publishing workflow.
Tests
npm test # unit tests
npm run test:unit # unit tests only
npm run test:regression # regression suite
npm run verify:release # fail-closed packaged current/minimum + live gates; requires V6EMUL
Documentation
Full developer documentation is in docs/:
- Architecture — platform layer, configuration, entry point
- Project System — discovery, parsing, validation,
*.project.json schema
- Language Support — syntax highlighting, include navigation
- Emulator — launcher, IPC protocol, lifecycle, webview panel
- Commands — Create Project, Run Project, FDD persistence
- Settings and Error UX — configuration, error notifications
- Development — building, packaging, testing
- Publishing — accounts, Entra ID setup, release gates, and the publish script
License
MIT
| |