Значок ресурса

SkoolKit 10.0

Нет прав на скачивание
Автор
skoolkid

faq.png
skoolkit-10.0.png
skoolkit-9.6.png
skoolkit-9.5.png

Что такое SkoolKit?

SkoolKit — это набор утилит (suite of tools) для создания дизассемблированных листингов игр и программ для ZX Spectrum (или любого другого ПО в машинных кодах). Процесс работы строится вокруг создания специального промежуточного файла формата skool. Этот файл является единым источником, из которого SkoolKit затем может сгенерировать:
  1. HTML-версию: Удобный для чтения в браузере гипертекстовый документ с навигацией по коду.
  2. ASM-версию: Файл для ассемблера, готовый к повторной компиляции (re-assemblable).
Ключевая особенность: Вы аннотируете и организуете код в процессе исследования, и skool-файл накапливает эти знания. Оба выхода (HTML и ASM) всегда синхронизированы и используют эти аннотации.

Системные требования

Согласно репозиторию, SkoolKit требует Python 3.10 или выше.

Состав пакета и как с ним работать (Утилиты)

Проект состоит из множества отдельных скриптов Python, каждый из которых выполняет свою задачу в цепочке создания дизассемблинга. Вот полный перечень и функционал, указанный в README:

1. Инструменты первичного анализа и создания сырого дампа:
  • sna2ctl.py: Генерирует контрольный файл (control file) из снапшота (SNA, SZX, Z80) или raw-файла памяти. Пытается отличить код от данных методом статического анализа.
  • trace.py: Трассирует выполнение машинного кода в снапшоте или raw-файле. Позволяет получить карту исполнения кода для sna2ctl.py.
  • rzxplay.py: Проигрывает RZX файл (запись действий пользователя) и трассирует выполнение кода для создания точной карты исполнения (code execution map) для sna2ctl.py.
  • sna2skool.py: Используя контрольный файл, создает первичный дизассемблинг (skool файл) из снапшота.

2. Инструменты конвертации и анализа медиа-данных:
  • tap2sna.py: Конвертирует файлы лент (PZX, TAP, TZX) в "чистый" снапшот Z80 или SZX.
  • tapinfo.py: Анализирует блоки в файлах PZX, TAP или TZX и выводит листинг содержащегося в них BASIC.
  • snapinfo.py: Анализирует снапшот или raw-файл. Умеет показывать BASIC программу, значения регистров, строить граф вызовов, искать спрайты (tile graphic data), текст или произвольные последовательности байтов.
  • rzxinfo.py: Анализирует блоки в RZX файле и может извлечь из него снапшоты.
  • sna2img.py: Конвертирует графические данные из дизассемблинга, SCR-файла, снапшота или raw-файла в изображение PNG.
3. Инструменты для работы с готовым skool-файлом:
  • skool2html.py: Конвертирует skool-файл в набор HTML страниц. Операнды инструкций CALL и JP автоматически становятся гиперссылками.
  • skool2asm.py: Конвертирует skool-файл в исходный код ассемблера (с сохранением комментариев-аннотаций).
  • skool2ctl.py: Конвертирует skool-файл обратно в контрольный файл (например, если вы правили код вручную и хотите обновить структуру).
  • skool2bin.py: Конвертирует skool-файл обратно в бинарный файл памяти.
4. Вспомогательные утилиты модификации:
  • bin2tap.py: Конвертирует снапшот или raw-файл в ленту (PZX или TAP).
  • bin2sna.py: Конвертирует raw-файл памяти в снапшот Z80 или SZX.
  • snapmod.py: Позволяет изменять значения регистров или содержимое памяти в снапшотах Z80 или SZX.

Расширенные возможности HTML-дизассемблинга

В созданных skool2html.py HTML-файлах доступны специальные макросы, которые превращают обычный текст в интерактивный контент:
  • Макросы изображений: Создание статичных и анимированных PNG прямо из графических данных кода.
  • Макрос #AUDIO: Генерация WAV файлов для звуковых эффектов и музыки.
  • Макрос #R: Создание гиперссылок между процедурами и блоками данных, которые ссылаются друг на друга в аннотациях.
  • Секции [Bug:*], [Fact:*], [Poke:*]: Автоматическое формирование страниц с багами, интересными фактами и POKE-кодами.

Источник информации:

Автор
admin
Загрузки
0
Просмотры
12
Расширение
zip
Размер
1.4 МБ
Хэш
51b8ebe83d774223fd9834ce512bb09d
Первый выпуск
Последнее обновление

Оценки

0.00 звезд(ы) 0 оценок
Назад
Вверх