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 Extensions (
Ctrl+Shift+X) - Найдите "PDP-11 Assembler LSP server and Tools"
- Нажмите Install
- Скачайте расширение в виде файла .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 run install:all
npm run compile
# Package as VSIX:
npm install -g @vscode/vsce
vsce packageс расширением .asm, .s, или .mac:
MOV #HELLO,R1 ; Адрес начала текста
CLR R2 ; Конец текста - нулевой байт
EMT 20 ; Вывод текста
STOP: HALT ; Останов
HELLO: .ASCIZ "Hello World!"
.ENDНажмите Ctrl+Shift+P найдите запускаемые файлы для правильной настройки:
- PDP-11: Select pdpy11 Executable
- PDP-11: Select BKTurbo8 Executable
- PDP-11: Select MACRO11 Executable
Нажмите Ctrl+Shift+P и запустите:
- PDP-11: Assemble with pdpy11
- PDP-11: Assemble with BKTurbo8
- PDP-11: Assemble with MACRO11
Нажмите CTRL + , и вбейте в поисковую строку "pdp11"
Установка:
pip install pdpy11
# или в macOS
brew install pipx
pipx install pdpy11Исходники: https://github.com/pdpy11/pdpy11
Быстрый старт:
pdpy11 --implicit-bin program.macИдет в составе эмулятора - https://gid.pdp-11.ru/
Документация: https://gid.pdp-11.ru/bkturbo8_doc.html
Быстрый старт:
BKTurbo8_x64.exe CO program.asmPortable 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 run install:all
# 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
- Issues: GitHub Issues
- pdpy11 Docs: https://github.com/pdpy11/pdpy11
- BKTurbo8 Docs: https://gid.pdp-11.ru/bkturbo8_doc.html
- PDP-11 Reference: https://en.wikipedia.org/wiki/PDP-11
(с) 2026 by Ivan "VDM" Kalininskiy
- Telegram: @VanDamM
- GitHub: kalininskiy