https://github.com/kalininskiy/pdp11-asm-lsp-server
PDP-11 Assembler Language LSP-Server with DevTools intergration / LSP-сервер (Language Server Protocol) с поддержкой языка ассемблера PDP-11 в VS Code с интеграцией инструментов разработки
https://github.com/kalininskiy/pdp11-asm-lsp-server
assembler assembly-language bk-0010 bk-0011 bk0010 bk0011m bkturbo8 lsp lsp-server pdp-11 pdp11 pdpy11 retro-computers retro-computing retrocomputers retrocomputing uknc
Last synced: about 2 months ago
JSON representation
PDP-11 Assembler Language LSP-Server with DevTools intergration / LSP-сервер (Language Server Protocol) с поддержкой языка ассемблера PDP-11 в VS Code с интеграцией инструментов разработки
- Host: GitHub
- URL: https://github.com/kalininskiy/pdp11-asm-lsp-server
- Owner: kalininskiy
- License: mit
- Created: 2026-04-18T23:53:41.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-20T22:48:17.000Z (about 2 months ago)
- Last Synced: 2026-04-21T00:02:33.278Z (about 2 months ago)
- Topics: assembler, assembly-language, bk-0010, bk-0011, bk0010, bk0011m, bkturbo8, lsp, lsp-server, pdp-11, pdp11, pdpy11, retro-computers, retro-computing, retrocomputers, retrocomputing, uknc
- Language: TypeScript
- Homepage: https://marketplace.visualstudio.com/items?itemName=kalininskiy.pdp11-asm-lsp-server
- Size: 492 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# PDP-11 Assembly Language LSP-Server with DevTools intergration
LSP-сервер (Language Server Protocol) с поддержкой языка **ассемблера PDP-11** в VS Code с интеграцией инструментов разработки.



## Возможности
✨ **Поддержка языка**
- Полная подсветка синтаксиса PDP-11
- Интеллектуальное автодополнение кода
- Сниппеты для удобной разработки
- Навигация по символам и переход к определениям
- Всплывающие подсказки (on hover)
📊 **Диагностика проблем в коде в реальном времени**
- Отображение ошибок и предупреждений
- Интеграция с внешними ассемблерами
- Подсветка в панели проблем
- Настраиваемые таймауты
🔧 **Поддерживает ассемблеры**
- **pdpy11** – ассемблер PDP-11 на Python - [ссылка на проект](https://github.com/pdpy11/pdpy11)
- **BKTurbo8** – Кросс Ассемблер БК Турбо8 для компьютеров серии БК - [ссылка на проект](https://gid.pdp-11.ru/bkturbo8_doc.html)
- **MACRO11** – Portable DEC MACRO11 assembler - [ссылка на проект](https://github.com/j-hoppe/MACRO11)
🎯 **Возможности для разработки**
- Выбор целевого аппаратного профиля (БК-0010, БК-0011, УКНЦ)
- Поддержка форматов (.s, .asm, .mac)
- Запуск сборки из редактора
- Настройка аргументов сборки
- Автозапуск в эмуляторе - после успешной сборки
## Установка
### Через VS Code Marketplace
1. Откройте VS Code Extensions (`Ctrl+Shift+X`)
2. Найдите **"PDP-11 Assembler LSP server and Tools"**
3. Нажмите **Install**
### Через ручную установку в VS Code
1. Скачайте расширение в виде файла .vsix в разделе release
2. Откройте VS Code Extensions (`Ctrl+Shift+X`)
2. Нажмите "..." и запустите **Install from VSIX**
### Ручная установка
```bash
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
```
## Быстрый старт
### 1. Создайте ассемблерный файл (PDP-11, здесь: пример для БК-0010)
с расширением `.asm`, `.s`, или `.mac`:
```asm
MOV #HELLO,R1 ; Адрес начала текста
CLR R2 ; Конец текста - нулевой байт
EMT 20 ; Вывод текста
STOP: HALT ; Останов
HELLO: .ASCIZ "Hello World!"
.END
```
### 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
**Установка:**
```bash
pip install pdpy11
# или
brew install pdpy11 # macOS
```
**Исходники:** https://github.com/pdpy11/pdpy11
**Быстрый старт:**
```bash
pdpy11 --implicit-bin program.mac
```
---
### BKTurbo8
Идет в составе эмулятора - https://gid.pdp-11.ru/
**Документация:** https://gid.pdp-11.ru/bkturbo8_doc.html
**Быстрый старт:**
```bash
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
**Шаги для сборки:**
```bash
# 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
```
### Запуск в режиме отладки
1. Откройте проект в VS Code
2. Нажмите `F5` для запуска Debug Extension
3. Откроется новое окно VS Code с загруженным расширением
4. Откройте или создайте файл с раширением `.asm` для тестирования
### Сборка релиза
```bash
# Установите vsce (VS Code Extension CLI)
npm install -g @vscode/vsce
# Соберите Package в виде .vsix
vsce package
```
## Контрибьюторы
Исправления и любое участие в проекте приветствуется!
Простые шаги чтобы начать участие в проекте:
1. Сделайте форк репозитория
2. Создайте feature branch (`git checkout -b feature/amazing-feature`)
3. Сделайте Commit изменений (`git commit -m 'Add amazing feature'`)
4. Сделайте Push изменений в feature branch (`git push origin feature/amazing-feature`)
5. Откройте Pull Request в проект
## Лицензия
MIT License – see LICENSE file for details
## Поддержка и ссылки
- **Issues:** [GitHub Issues](https://github.com/kalininskiy/pdp11-asm-lsp-server/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](https://t.me/VanDamM)
- GitHub: [kalininskiy](https://github.com/kalininskiy)