Улучшенный ROM для ZX Spectrum с подсветкой синтаксиса Бейсика

Спустя семь лет ожил GitHub очень любопытного проекта — PrettyBASIC. Это улучшенный ROM для ZX Spectrum 48K, который добавляет подсветку синтаксиса и форматирование программ, написанных на Sinclair BASIC. Такая модификация значительно упрощает чтение старых программ, которые часто писались в печально известном стиле «впихнуть всё в 9999 строк».

Что же предлагает новая версия ROM? В первую очередь, различные элементы кода теперь выделяются разными цветами:

  • буквы
  • цифры
  • функции
  • операторы
  • операторы управления потоком (GO TO, GO SUB...RETURN, IF...THEN, FOR...NEXT)
  • комментарии REM и их содержимое

Кроме того, добавлено базовое форматирование:

  • двоеточие (:) теперь работает как перевод строки
  • конструкция IF...THEN стала многострочной
Слева — PrettyBASIC. Справа — обычный Sinclair BASIC.

Есть и дополнительные улучшения: управляющие коды (ASCII 00...31) в режиме LIST теперь скрыты, а цветовая палитра динамически подстраивается под выбранный цвет фона для лучшего контраста.

Техническая реализация модификации впечатляет. Она основана на дизассемблированном коде, который создали доктора Ян Логан и Фрэнк О'Хара. Оригинальная процедура по адресу 0x1937 была заменена новой по адресу 0x386E, а цветовые схемы рассчитываются динамически на основе значения PAPER.

Для изменения цвета текста используется системный регистр ATTR T (адрес 0x5C8F или 23695 в десятичной системе), который содержит значение атрибута цвета для записи в область атрибутов видеопамяти. Процедуры вывода ROM используют этот регистр при отрисовке символов или графических примитивов.

Несмотря на наличие нескольких багов (номера строк печатаются текущим цветом INK, управляющие коды должны быть видны в режиме редактирования), модификация уже вполне работоспособна и значительно облегчает чтение и анализ старых Бейсик-программ.

Такие улучшения могут показаться незначительными для тех, кто привык к современным IDE, но для ретро-энтузиастов и исследователей старых игр это настоящая находка. Так разбираться в хитросплетениях Бейсик-программ тридцатилетней давности куда проше.

Скачать текущую версию PrettyBASIC можно либо с GitHub (см. раздел Releases), либо с «Идеального пикселя».

Fuente: github.com
Etiquetas: ZX Spectrum

Solo los usuarios autorizados pueden dejar comentarios