VSCode - плагины для ZX

  • Автор темы Автор темы Xander
  • Дата начала Дата начала

Xander

Легенда II
Пользователь
Сообщения
49
Счётчик реакций
22
Очки
395
Если кто использует данную современную IDE, хотелось бы услышать кто какие плагины использует для разработки и написания кода.

Я лично в последнее время для отладки остановился на DeZog
 
Что такое DeZog?

DeZog
— это отладчик для Z80, интегрированный в VS Code. Он предоставляет возможности, к которым привыкли разработчики на высокоуровневых языках: пошаговое исполнение кода с заходом в подпрограммы, точки останова, просмотр и изменение регистров и памяти, наблюдение за значениями меток и многое другое .

DeZog не содержит встроенного компилятора или ассемблера — его задача — отладка уже собранного бинарного файла. Для выполнения кода он использует так называемые "удаленные цели" (remotes):

· Встроенный симулятор Z80 (zsim): Не требует установки эмулятора Spectrum, идеален для быстрого старта и отладки логики программ .
· Внешние эмуляторы: Поддерживает подключение к ZEsarUX, CSpect и даже к MAME .
· Реальное железо: Позволяет отлаживать программы непосредственно на ZX Spectrum Next через последовательный порт .

Установка и настройка

Процесс настройки состоит из двух этапов: установка самого расширения и создание конфигурационного файла для вашего проекта.

Шаг 1: Установка необходимых расширений VS Code

1. Запустите VS Code и перейдите на вкладку Extensions (иконка квадратиков на левой панели или Ctrl+Shift+X).
2. В поиске введите "DeZog" и найдите расширение DeZog от maziac. Установите его .
3. Для более комфортной работы с кодом рекомендуется также установить сопутствующие расширения :
· ASM Code Lens (от maziac): Добавляет подсветку синтаксиса Z80, автодополнение, переход к определению метки и переименование.
· Z80 Instruction Set (от maziac): Показывает опкод, описание и изменяемые флаги при наведении на инструкцию Z80.
· Hex Hover Converter (от maziac): Преобразует числа под курсором в десятичный, шестнадцатеричный и двоичный формат.

Шаг 2: Настройка конфигурации запуска (launch.json)

Сердце настройки DeZog — это файл launch.json, который говорит VS Code, как запускать отладчик. Чтобы его создать:

1. Откройте папку с вашим проектом в VS Code.
2. Перейдите на вкладку Run and Debug (иконка треугольника с жучком на левой панели или Ctrl+Shift+D).
3. Нажмите "create a launch.json file" и выберите "DeZog" из появившегося списка.

Будет создан файл с базовой конфигурацией. Рассмотрим ключевые параметры на примере настройки для работы со встроенным симулятором (zsim):
JSON:
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "dezog",
            "request": "launch",
            "name": "DeZog (zsim)",
            // 1. ВЫБОР ЦЕЛИ (REMOTE)
            "remoteType": "zsim", // Используем встроенный симулятор
            "zsim": {             // Настройки симулятора (можно оставить пустыми)
            },
            
            // 2. ИНФОРМАЦИЯ ОБ АССЕМБЛЕРЕ
            // Указываем путь к листингу для sjasmplus
            "sjasmplus": [
                {
                    "path": "${workspaceFolder}/main.list", // Путь к .list файлу
                }
            ],
            
            // 3. ЗАГРУЗКА ПРОГРАММЫ
            "load": "${workspaceFolder}/main.sna", // Путь к .sna, .nex или .tap файлу
            
            // 4. НАСТРОЙКА СТЕКА (ВАЖНО!)
            "topOfStack": "stack_top", // Имя метки, указывающей на вершину стека
            
            // 5. ДОПОЛНИТЕЛЬНЫЕ ПАРАМЕТРЫ
            "startAutomatically": false, // Программа остановится сразу после запуска
            "history": {
                "reverseDebugInstructionCount": 10000, // Включить обратную отладку
                "codeCoverageEnabled": true // Подсвечивать исполненные строки
            }
        }
    ]
}

Разбор ключевых параметров:

· "remoteType": Может быть "zsim", "zrcp" (для ZEsarUX), "cspect" или "zxnext" .
· "sjasmplus", "z88dk" или "z80asm": Здесь вы указываете путь к файлу листинга (.list), который генерирует ваш ассемблер. Именно благодаря этому файлу DeZog понимает, какой ассемблерной строке соответствует тот или иной адрес в памяти .
· "load": Путь к загружаемому файлу (снапшот .sna, файл для ZX Next .nex или лента .tap) .
· "topOfStack": Крайне важный параметр для корректного отображения стека вызовов. Укажите здесь имя метки, которая обозначает вершину стека в вашем коде (например, stack_top). Если метки нет, можно использовать число, например "0xFF58" .

Практическая работа с DeZog

Подготовка проекта


Для работы с DeZog ваш проект должен быть настроен на сборку с помощью одного из поддерживаемых ассемблеров (например, sjasmplus). Ассемблер должен быть настроен на генерацию двух важных файлов :

1. Бинарный файл (.sna, .nex и т.д.): Сама программа, которая будет загружена в эмулятор/симулятор.
2. Файл листинга (.list): Содержит соответствие между адресами в памяти и строками исходного кода. Именно его DeZog использует для пошаговой отладки.

Рекомендуется использовать готовый пример проекта от автора DeZog: z80-sample-program . Он идеально подходит для первого знакомства.

Процесс отладки

1. Запустите эмулятор (если используете не zsim). Запустите ZEsarUX или CSpect отдельно. В случае с zsim ничего запускать не нужно.
2. Соберите ваш проект. Убедитесь, что ассемблер создал актуальные .list и бинарный файл.
3. Запустите отладку. Перейдите на вкладку Run and Debug и нажмите зеленую стрелку рядом с вашей конфигурацией (например, "DeZog (zsim)").
4. DeZog подключится к цели (или запустит симулятор), загрузит программу и остановит её на первой инструкции (если "startAutomatically": false) .

Интерфейс и возможности

После запуска отладки VS Code преобразится :


· Панель управления (A): Плавающая панель с кнопками: Continue (F5), Step Over (F10), Step Into (F11), Step Out (Shift+F11), Restart, Stop. Также здесь есть кнопки для обратной отладки (Step Back, Reverse Continue), если она включена.
· Область переменных (R - VARIABLES): Здесь отображаются все регистры Z80, а также флаги. Можно раскрыть отдельные регистры для просмотра их значения в разных форматах. DeZog также показывает дизассемблированный код вокруг текущего указателя команд (PC) и содержимое стека.
· Область наблюдения (W - WATCH): Сюда можно добавить любые метки из вашего кода, чтобы постоянно отслеживать их значение.
· Точки останова (B - BREAKPOINTS): Список всех установленных точек останова. Их можно ставить прямо в редакторе, щелкнув слева от номера строки. Поддерживаются условные breakpoints.
· Редактор кода (E): Текущая строка, на которой остановилось выполнение, будет подсвечена. Вы можете навести курсор на любую метку или регистр (например, hl), чтобы увидеть его текущее значение. Code Coverage подсветит зеленым строки кода, которые уже выполнялись .
· Консоль отладки (D - DEBUG CONSOLE): Сюда выводятся отладочные сообщения. Здесь же можно выполнять специальные команды DeZog, начинающиеся с дефиса. Например, -mv 0x4000 0x1000 покажет область памяти с 0x4000 по 0x4FFF .
· Дополнительные виды (V): Здесь могут отображаться спрайты (для ZX Next), содержимое памяти и другие полезные вещи.

Информация взята на просторах интернета, из разных источников, подкорректирована и собрана все в одном место.
 
Назад
Вверх