ZX Format #02: Программистам: Обзор расширений Basic

Б Е Й С И К для программистов. (#2)

(С) Дм. Рудовский 1995
________________________________

Как и было обещано в прошлом номере, сегодняшняя статья будет посвящена функциям и программам, которые расширяют стандартный Basic 48.

В этой статье речь пойдет о:
- Renumber 128-го бейсика
- Trace & Speed
- Blast Toolkit
- ZXeditor

Начнем с наиболее близкого расширения - Basic 128. Единственная функция, заслуживающая внимания - это Renumber. При вызове этой функции строки программы перенумеруются начиная с первой с шагом 10. Впрочем номер "первой" строки, также как и шаг, можно изменить, занеся необходимые параметры в системные переменные RNFIRST и RNSTEP (23444/45 и 23446/47 соответственно) бейсика 128. Если же Вас не удовлетворяет такой метод (вполне понятно, что вводить четыре POKE в редакторе 128-го бейсика - радости мало), то рекомендую воспользоваться либо расширениями стандартного бейсика вроде Mega, Beta или Laser Basic, либо расширениями типа ZXED или утилиты TOOLKIT, либо подпрограммами из пакетов Supercode и Newsupercode. Если Вам попался неизвестный продукт, претендующий на умение перенумеровывать программы, то вы можете протестировать его с помощью следующего примера:

1 LET A=10
3 PRINT A
4 GO SUB 19
6 PRINT A
8 GO TO 10
9 PRINT "NONSENSE"
10 RESTORE 110
11 READ A: PRINT A
13 STOP
19 LET A=2*A: RETURN
100 DATA 35
110 DATA 50

Запустите этот тест, запишите или запомните результаты, затем перенумеруйте его тестируемым продуктом и снова запустите. Если результаты обоих прогонов совпадут - тестируемая программа годна к применению, иначе - сотрите ее с диска. Несколько комментариев. Как Вы поняли, этот пример проверяет все виды адресации бейсика, и если программа-renumber что-то забудет, результаты работы теста резко изменятся. Ну а теперь перейдем к другому типу программ - отладчикам (Tracer'ам). Все расширения стандартного бейсика имеют команду TRACE, а из отдельных программ, выполняющих аналогичные функции, мне известен лишь TRACE&SPEED Елисеева, который позволяет не только проследить выполнение программы по операторам, но и практически произвольно изменять скорость ее выполнения. Об этой программе я расскажу подробнее. Сама программа забирает у Вас две строки - 1 и 9999 (включение и выключение отладчика соответственно), а также верхнюю часть ОЗУ начиная с 61000. К слову, именно по этим причинам свою программу надо загружать с помощью MERGE, а не LOAD, так как последнее приведет к стиранию части отладчика и его неработоспособности соответственно. Вы загрузили отладчик, свою программу, а дальше как обычно - RUN, . Перед Вами появится запрос: Input speed (1-Max,255-Min): (Введите скорость (1-Макс., 255-Мин.) Собственно Вы вводите не скорость, а коэффициент торможения. Если Вам не хватает скорости интерпретатора, то откомпилируйте программу (откомпилированные модули отладчик, к сожалению, не берет). Теперь об отрицательных сторонах программы:

1. Категорически не рекомендуется:
- использовать в программе оператор STOP и другие аварийные методы выхода (их надо заменять на GOTO 9999)
- останавливать программу с помощью BREAK или в INPUT
- использовать строки 1 и 9999.

2. Неудобства программы:
- невозможность останова программы на низких скоростях приводит к усложнению отладки программы, а в случае фатальной ошибки (вроде 10 GO TO 10) к настоящим мукам
- при замедлении программа начинает работать рывками, что создает сложности (в проверке качества вывода, например).

Если Вам все же пришлось нажать BREAK, то не нажимая ENTER наберите GO TO 9999 для возвращения компьютера в нормальный режим работы.

Закончив с отладчиками, вернемся к утилитам и рассмотрим две из них - ZXEDITOR и BLAST TOOLKIT. Утилита BLAST TOOLKIT входит в пакет компилятора BLAST (мне известен и другой TOOLKIT, никакого отношения к описываемому не имеющий) и в принципе имеет несколько функций, готовящих текст вашей программы к компиляции. Правда, я не видел нормальной дисковой версии этого пакета и поэтому эти функции становятся бессмысленными и описываться здесь не будут. Итак, Вы загрузили TOOLKIT и увидели, что внешних изменений не произошло, - TOOLKIT защищает свои коды с помощью CLEAR и стирает загрузчик из памяти. Но все же рекомендую переинсталлировать его следующим образом: NEW, затем RANDOMIZE USR 60497. Все функции утилиты начинаются с "*" и состоят из одной буквы и параметров. Ниже следует описание этих функций:

*ЕN1 - редактирование строки с номером N1.

*CN1-N2,N3 - копирование строк из интервала N1-N2 в область, начинающуюся со строки N3. При отсутствии N2 копируется одна строка.

*DN1-N2 - удаление строк из интервала N1-N2. При отсутствии N2 удаляется одна строка.

*MN1-N2,N3 - перенос строк. Аналогично копированию, но исходные строки удаляются.

*RN1-N2,N3,N4 - Перенумерация строк из диапазона N1-N2, первой присваивается номер N3, перенумерация идет с шагом N4. По умолчанию N4=10.

*FN1-N2,N$ - поиск текста N$ в диапазоне N1-N2. При отсутствии N$ ищется текст, заданный предыдущими функциями *F и *S.

*SN1-N2,N1$,N2$ - аналогично *F, но найденный текст N1$ заменяется на N2$.

*TN - трассирование программы со строки N. Замедление трассировки - пробел, а остановка - ENTER.

*K - удаление из текста всех строк REM кроме тех, которые начинаются с !, % и &. Это связано с тем, что в BLAST'е REM и данные символы имеют особое значение.

*Q - конец работы.

В случае выхода из TOOLKIT для возвращения туда используйте RANDOMIZE USR 60497.

Теперь перейдем к другой утилите - ZXEDITOR. Эта программа, в отличие от описанной выше, занимает в бейсике строки, начиная с 9900, и добавляет к стандартному редактору Спектрума 12 новых функций, которые задаются в режиме курсора Т. Его можно лицезреть, выполнив команду GO TO 9900.

Вот список функций ZXEDITOR:

A - Поиск и замена текста в программе. Утилита находит текст, заменяет его, выдает листинги замененных частей и в конце пишет количество выполненных замен.

В - Объем свободной памяти для бейсика.

C - Копирование строк программы, аналогично TOOLKIT.

D - Удаление группы строк.

F - Поиск текста в программе и листинг, начиная с этого текста.

H - Эта функция выдаст то же, что написано здесь, только покороче и на английском языке.

L - По введенному номеру строки выдаст ее адрес в памяти.

M - Перемещение строк, аналогично *M в TOOLKIT.

P - Добавление текста в строку.

R - Перенумерация строк.

S - Автоматический ввод номера строки. На экран выводится листинг программы, а в окне редактора выдается номер вводимой строки.

V - Список изменений.

Теперь дополнительные пояснения:
From line - со строки
To line - по строку
base - начинать с
increment - шаг
insert after - куда вставить?
to be - на что заменить?

Кавычки с курсором как правило означают просьбу ввести текст. В конце надо заметить, что после загрузки этой программы вы можете удалить строки 9990 и 9991 (использовать их). Но свою программу загружайте только с помощью MERGE, иначе работать ZXEDITOR Вы не заставите никакими силами.

P.S. Если Вам известны какие-то более крутые утилиты, пожалуйста, напишите об этом нам.

Оглавление издания: ZX Format #02

  • IS-DOS
    Анонс готового к использованию в школах аппаратно-программного комплекса от Iskra Soft и Петерс, оснащенного сетевым компьютерным классом на базе ZX Spectrum и IS-DOS.
  • IS-DOS - Владимир Елисеев
    Объяснение работы командного монитора и рестарта текстового редактора в IS-DOS на примере утилиты mon.com.
  • IS-DOS
    Введение в системные утилиты IS-DOS, охватывающее функции помощи, пользовательского меню, просмотра файлов, редактирования и операций с файлами.
  • IS-DOS
    Подробное описание программы eliminat.com для освобождения памяти от резидентных задач и драйверов с интерактивным режимом и ключами командной строки. Специфические номера каналов выделены для типов задач и драйверов. Включает варианты использования и настройку цветов.
  • Оконная система IS-DOS - Владимир Елисеев
    Изучение перезапусков оконной системы IS-DOS для печати текста в окнах и абсолютных координатах экрана. Примеры реализации перезапусков, таких как lwt, adrwt, lenwt, prstr, str и lnstr. Продолжение о вспомогательных перезапусках в следующем номере.
  • Ассемблер
    Введение в основы языка ассемблера с акцентом на флаги, арифметические операции и манипуляцию регистрами. Обсуждаются операции сложения, вычитания и сложные операции, такие как умножение и деление, через примеры. Подчеркивается использование специфических команд ассемблера и их функций для ZX Spectrum.
  • Железо
    Обсуждение модификаций железа для Scorpion ZS-256-Turbo, включая установку переключателя Turbo/Normal. Плюсы и минусы программных методов переключения. Советы по пайке и настройке схем.
  • Железо
    Обсуждение новой музыкальной приставки для ZX Spectrum от X-TRADE и HACKER STINGER под названием 'ZX GENERAL SOUND', предлагающей высокое качество звука и минимальное использование процессора.
  • Железо
    Обсуждение инноваций в железе и маркетинговых стратегий, с акцентом на интерфейсы мыши и клавиатуры для ZX Spectrum. Критика вводящей в заблуждение рекламы конкурентов и анализ технологий serial и пассивной мыши. Автор ставит под сомнение необходимость и стоимость продвинутых функций.
  • Железо
    Обсуждение методов аппаратного ускорения для ZX Spectrum, с акцентом на турбо-режимы и их влияние на производительность и совместимость.
  • Игрушки
    Фэнтезийный рассказ о магических существах, борющихся с вторжением людей. Главный герой набирает союзников для восстановления былого величия страны. Испытания включают поиск инструментов, преодоление препятствий и оживление компаньонов.
  • Игрушки
    Обзор игры 'Carrier Command', с акцентом на стратегические и симуляционные аспекты. Включает детали игровых механик, управления и целей. Подчеркивает стратегии для успеха и уникальные особенности, такие как управление ресурсами и автономными системами.
  • Интервью
    Интервью с Сергеем Зоновым и Андреем Ларченко об их опыте с микропроцессорами и разработке ZX Spectrum, включая создание компьютера Scorpion ZS 256.
  • Информация
    Контактная информация и список сотрудников ZX-Format №2 (1995), включая редактора, кодеров и дизайнеров.
  • Информация
    Обращение редактора к читателям ZX Format, обсуждение положительных отзывов, прошлых ошибок и поисков карикатуриста, планы на будущее для журнала.
  • Информация
    Обсуждение новой интерпретации системы оконного меню 'PULLDOWN' для ZX Spectrum с акцентом на обновления интерфейса и улучшение взаимодействия с пользователем.
  • Информация
    Обсуждение компаний, незаконно распространяющих ZX Format, с акцентом на преимущества покупки официальных копий.
  • Конкурс
    Обсуждается отсутствие участия в конкурсе ZX Format, приводятся правила и призы, и поощряются читатели к предложению новых идей.
  • Отдохнём
    Юмористический рассказ о трудностях продавца софта при общении с несведущими покупателями, демонстрирующий нервозность его работы.
  • Почтовый ящик
    Обзор комплектующих и цен для энтузиастов ZX Spectrum с деталями заказа.
  • Почтовый ящик
    Раздел писем читателей в ZX Format #02 обсуждает отзывы читателей, затрагивает вопросы с функциями ZX Format и предлагает будущие улучшения.
  • Премьера
    Инструкция к музыкальному редактору Digital Studio v1.12 для ZX Spectrum, включая функции, навигацию по меню и использование Digital Studio Compiler.
  • Программистам
    Изучение инструментов, расширяющих стандартный Basic 48, включая Renumber для Basic 128, Trace & Speed, Blast Toolkit и ZXeditor, с акцентом на их функции и полезности.
  • Разное
    История моделей компьютеров Amiga и их эволюция от A1000 до A4000/60T с характеристиками и уникальными особенностями. Объяснение технических терминов и различий между chip и fast памятью. Упоминание о новых разработках, таких как AGA чипсет и модели для разных нужд.
  • Разное
    Статья представляет предстоящие релизы программного обеспечения для ZX Spectrum и рассматривает новшества игр, таких как 'Приключения Винни Пуха' и 'НЛО 2: Дьяволы Бездны'. Она выделяет особенности, создателей и технические требования. Включает анонсы от SOFTLAND и Cracked Masters Group.
  • Системы
    Обсуждение создания музыки с Instrument 3.01, акцент на оцифрованный звук. Анализ возможностей программы и конвертация из ASC Sound Master. Инструкции по созданию композиции и конвертации.
  • Что новенького
    Обзор новых игр для ZX Spectrum на петербургском рынке в конце 1995 года. Подробные описания игр, требования к памяти, управление и оценки музыки/графики. Включает Night Hunter, Extreme, Grell & Falla и другие.