LSP-сервер (Language Server Protocol) с поддержкой языка ассемблера PDP-11 в VS Code с интеграцией инструментов разработки.

Возможности
✨ Поддержка языка
- Полная подсветка синтаксиса PDP-11
- Интеллектуальное автодополнение кода
- Сниппеты для удобной разработки
- Навигация по символам и переход к определениям
- Всплывающие подсказки (on hover)
📊 Диагностика проблем в коде в реальном времени
- Отображение ошибок и предупреждений
- Интеграция с внешними ассемблерами
- Подсветка в панели проблем
- Настраиваемые таймауты
🔧 Поддерживает ассемблеры
- pdpy11 – ассемблер PDP-11 на Python - ссылка на проект
- BKTurbo8 – Кросс Ассемблер БК Турбо8 для компьютеров серии БК - ссылка на проект
- MACRO11 – Portable DEC MACRO11 assembler - ссылка на проект
🎯 Возможности для разработки
- Выбор целевого аппаратного профиля (БК-0010, БК-0011, УКНЦ)
- Поддержка форматов (.s, .asm, .mac)
- Запуск сборки из редактора
- Настройка аргументов сборки
Установка
Через VS Code Marketplace
- Откройте VS Code Extensions (
Ctrl+Shift+X)
- Найдите "PDP-11 Assembler LSP server and Tools"
- Нажмите Install
Через ручную установку в VS Code
- Скачайте расширение в виде файла .vsix в разделе release
- Откройте VS Code Extensions (
Ctrl+Shift+X)
- Нажмите "..." и запустите Install from VSIX
Ручная установка
git clone https://github.com/kalininskiy/pdp11-asm-lsp-server.git
cd pdp11-asm-lsp-server
npm install
npm run compile
# Package as VSIX:
npm install -g @vscode/vsce
vsce package
Быстрый старт
1. Создайте ассемблерный файл (PDP-11)
с расширением .asm, .s, или .mac:
.global start
start:
MOV [#100](https://github.com/kalininskiy/pdp11-asm-lsp-server/issues/100), R3 ; Load immediate value
ADD [#10](https://github.com/kalininskiy/pdp11-asm-lsp-server/issues/10), R3 ; Add to register
CLR R0 ; Clear register zero
JMP start+4 ; Jump forward
2. Настройте выбранный ассемблер
Нажмите Ctrl+Shift+P найдите запускаемые файлы для правильной настройки:
- PDP-11: Select pdpy11 Executable
- PDP-11: Select BKTurbo8 Executable
- PDP-11: Select MACRO11 Executable
3. Запустите
Нажмите Ctrl+Shift+P и запустите:
- PDP-11: Assemble with pdpy11
- PDP-11: Assemble with BKTurbo8
- PDP-11: Assemble with MACRO11
Настройки
Основные настройки
Нажмите CTRL + , и вбейте в поисковую строку "pdp11"
Установка ассемблеров
pdpy11
Установка:
pip install pdpy11
# или
brew install pdpy11 # macOS
Исходники: https://github.com/pdpy11/pdpy11
Быстрый старт:
pdpy11 --implicit-bin program.mac
BKTurbo8
Идет в составе эмулятора - https://gid.pdp-11.ru/
Документация: https://gid.pdp-11.ru/bkturbo8_doc.html
Быстрый старт:
BKTurbo8_x64.exe CO program.asm
MACRO11
Portable DEC MACRO11 assembler - https://github.com/j-hoppe/MACRO11
Команды плагина
Все команды доступные по запуску (Ctrl+Shift+P):
настройка путей к запускаемым файлам ассемблеров
- PDP-11: Select pdpy11 Executable – Set pdpy11 binary location
- PDP-11: Select BKTurbo8 Executable – Set BKTurbo8 binary location
- PDP-11: Select MACRO11 Executable – Set MACRO11 binary location
Запуск ассемблеров
- PDP-11: Assemble with pdpy11 – Compile active file with pdpy11
- PDP-11: Assemble with BKTurbo8 – Compile active file with BKTurbo8
- PDP-11: Assemble with MACRO11 – Compile active file with MACRO11
Разработка проекта
Структура проекта
pdp11-asm-lsp-server/
├── client/ # VS Code extension client
│ ├── src/extension.ts # Main extension entry
│ ├── package.json
│ └── tsconfig.json
├── server/ # Language server backend
│ ├── src/
│ │ ├── server.ts # LSP server implementation
│ │ ├── analyzer.ts # Code analysis
│ │ ├── parser.ts # PDP-11 parser
│ │ ├── tokenizer.ts # Lexical analysis
│ │ ├── toolchain.ts # Assembler integration
│ │ ├── instructions.ts # PDP-11 instruction set
│ │ └── types.ts # TypeScript types
│ ├── package.json
│ └── tsconfig.json
├── syntaxes/pdp11-asm.tmLanguage.json # Syntax highlighting
├── snippets/pdp11.json # Code snippets
├── language-configuration.json # Language config
└── .vscode/
├── launch.json # Debug configuration
└── tasks.json # Build tasks
Сборка и отладка проекта
Prerequisites:
- Node.js 18+ and npm
- TypeScript 5.6+
- Git
Шаги для сборки:
# Clone repository
git clone https://github.com/kalininskiy/pdp11-asm-lsp-server.git
cd pdp11-asm-lsp-server
# Install dependencies
npm install
# Compile TypeScript
npm run compile
# Watch mode (development)
npm run watch
# Lint code
npm run lint
Запуск в режиме отладки
- Откройте проект в VS Code
- Нажмите
F5 для запуска Debug Extension
- Откроется новое окно VS Code с загруженным расширением
- Откройте или создайте файл с раширением
.asm для тестирования
Сборка релиза
# Установите vsce (VS Code Extension CLI)
npm install -g @vscode/vsce
# Соберите Package в виде .vsix
vsce package
Контрибьюторы
Исправления и любое участие в проекте приветствуется!
Простые шаги чтобы начать участие в проекте:
- Сделайте форк репозитория
- Создайте feature branch (
git checkout -b feature/amazing-feature)
- Сделайте Commit изменений (
git commit -m 'Add amazing feature')
- Сделайте Push изменений в feature branch (
git push origin feature/amazing-feature)
- Откройте Pull Request в проект
Лицензия
MIT License – see LICENSE file for details
Поддержка и ссылки
📞 Контакты
(с) 2026 by Ivan "VDM" Kalininskiy