ZX Format #07: Полное руководство по командам ББ

Команды ББ.  
(Окончание)

music by MIDISOFT
(C)Д.Рудовский
_______________________________

В этой статье я закончу описание ББ и дам несколько советов по его использованию. ОС Спектрума имеет свои внутренние часы, т.е. переменную, в которой хранится количество пятидесятых долей секунды (прерываний), пришедших с момента включения компьютера. Создатели ББ решили использовать эту возможность для организации часов в программе. Команда CLOCK "строка" - позволяет установить текущее значение времени, а также установить будильник. Для установки будильника первым символом в строке должен быть символ A (alarm - будить.) Строка должна быть введена в виде: "чч:мм:сс", для будильника секунды не указываются. Для использования возможностей будильника дополнительно введен формат: CLOCK n, где:

n=0 - показания не выводить, будильник отключить;
n=1 - указывать время в верхнем углу экрана, будильник отключить;
n=2 - время не показывать, выдать звуковой сигнал по будильнику;
n=3 - указывать время и выдавать звуковой сигнал по будильнику;
n=4 - не указывать время, при срабатывании будильника перейти на строку;
n=5 - аналогично n=4 с выводом времени на экран;
n=6 - аналогично n=4 с выдачей звукового сигнала перед переходом;
n=7 - n=5 и n=6 вместе;
n=8..9999 - установить номер строки, на которую будет произведен переход при срабатывании будильника.

Пример:
10 PRINT " 346*789=? "
20 CLOCK "00:00:00": CLOCK "A00:01"
30 CLOCK 1000: CLOCK 7
F 40 INPUT X
50 IF X=346*789 THEN PRINT "Very Good!" ELSE "Bad rezult!": GO TO 40
F 60 CLOCK 0
70 STOP
F1000 CLOCK 0
1010 PRINT "No more time!"
1020 STOP

Пояснения:
В 20 строке мы устанавливаем системные часы в 0, а будильник ставим на 1 минуту. В 30 строке мы устанавливаем строку перехода и режим работы часов (см. выше). Затем мы запрашиваем ввод числа и если результат верен, и прошло меньше минуты, то мы получим надпись "Very Good", часы будут поставлены в пассивное состояние (строка 60) и программа остановится. Если результат неверен, но время еще есть, то с выводом соответствующего сообщения произойдет переход обратно на строку 40. Если время истечет, то вне зависимости от результата будет выдан звуковой сигнал и произойдет переход на строку 1000. ВНИМАНИЕ!!! Переход по будильнику происходит только после выполнения всей! текущей строки. Также этот режим не работает во время редактирования текста.

Команда SORT используется для сортировки массивов и символьных строк. Ее формат:
SORT [INVERSE] var, где:

INVERSE - необязательный параметр, указывающий на условие сортировки, т.е. при его наличии сортировка будет происходить по убыванию значений, иначе, по возрастанию;
var - имя массива или строки.
Сортировка происходит для символьных массивов по первой символу по умолчанию. Для сортировки по другому символу используется конструкция: SORT S$() (N TO), где:

S$ - символьный массив;
N - номер символа по которому будет произведена сортировка.
Для сортировки части массива используют:
SORT S$(N TO M), где:
N,M - границы сортировки.

Пример:
10 DIM a$(100,10)
20 FOR I=1 TO 100
30 FOR J=1 TO 10
40 LET A$(I,J)= CHR$(RND*25+65)
50 NEXT J: PRINT A$(I)
60 NEXT I
70 PRINT "Sorting for 1st char:"
80 SORT A$
90 FOR I=1 TO 100
100 PRINT A$(I)
110 NEXT I
120 PRINT "Sorting for 2st char:"
130 SORT A$()(2 TO)
140 FOR I=1 TO 100
150 PRINT A$(I)
160 NEXT I
170 STOP

На этом я закончу описание команд ББ, приведя в конце справку по соответствию клавиш и команд (все команды набираются в режиме псевдографики):

[A] - ALTER [6] - AUTO
[C] - CLOCK [1] - DEF KEY
[1] - DEF PROC [7] - DELETE
[D] - DO [P] - DPOKE
[0] - EDIT [E] - ELSE
[3] - END PROC [I] - EXIT IF
[F] - FILL [G] - GET
[CS]+[6] - JOIN [CS]+[6] - KEYIN
[8] - KEYWORDS 0 [9] - KEYWORDS 1
[L] - LOOP [O] - ON
[N] - ON ERROR [Q] - POP
[2] - PROC [9] - RENUM
[R] - ROLL [S] - SCROLL
[M] - SORT [T] - TRACE
[P] - USING

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

К логическим функциям относятся:
AND(n,m) [FN A(] - логическое И;
OR(n,m) [FN O(] - логическое ИЛИ;
XOR(n,m) [FN X(] - исключающее ИЛИ.

К математическим функциям относятся:

а) Функции преобразования форматов:
BIN$(n) [FN B(] - преобразование десятичного числа в двоичную строку;
DEC(строка) [FN D(] - преобразование строки, содержащей шестнадцатиричное число, в десятичное.
HEX$(n) [FN H(] - преобразование десятичного числа в шестнадцатиричную строку;
USING$(формат, число) [FN U$(] - знаковая запись числа в заданном формате.

б) Расширенные стандартные функции:
COSE(n) [FN C(] - более быстрый и более грубый вариант cos;
SINE(n) [FN S(] - аналог. для sin;
DPEEK(n) [FN P(] - аналогично: 256*PEEK(N+1)+PEEK(N);
RNDM(n) [FN R(] - аналогично: n*RND.

К остальным функциям относятся функции определения объема памяти, содержимого экрана и т.д.

CHAR$(n) [FN C$(] - преобразование числа в пределах 0-65535 в эквивалентную строку из двух знаков;
FILLED() [FN F(] - количество элементов изображения, заполненных последней командой FILL;
INSTRING(n,стр1,стр2) [FN I(] - возвращает позицию первого знака строки 2 при просмотре строки 1, начиная с заданной стартовой позиции. Если внутри строки 1 нет строки 2, то возвращает 0.
MEM() [FN M(] - возвращает объем свободной памяти;
MEMORY$() [FN M$(] - возвращает значение всей памяти от 0 до 65535 интерпретированное, как одна строка;
MOD(n1,n2) [FN V(] - возвращает остаток деления n1 на n2;
NUMBER(строка) [FN N(] - преобразование строки из двух знаков в двухбайтовое число, где каждый байт содержит число, отвечающее заданному коду ASCII;
SCRN$(y,x) [FN K$(] - возвращает знак, находящийся на экране в заданной позиции;
STRING$(n,строка) [FN S$(] - повторяет строку заданное количество раз;
TIME$() [FN T$(] - возвращает строку, содержащую текущее время.

Особенности программирования в ББ.

Расширяя возможности стандартного бейсика, ББ изменяет и сами методы программирования, поэтому при работе в среде ББ желательно учитывать следующие моменты:
1) В результате изменения действия оператора FOR...NEXT скорость его выполнения значительно возрастает при работе с целыми числами в интервале 0..65535, следовательно старайтесь обходиться целочисленными циклами.
2) В результате появления процедур и связанных с ними локальных переменных появилась возможность существенно сэкономить память за счет локализации переменных. Также это позволяет вам перейти к понятию структуризации программы.
3) Наличие возможности форматированного вывода и введение оконного интерфейса позволяет упорядочить вывод на экран необходимой информации.
4) Команда сортировки позволяет более эффективно использовать ББ при организации баз данных.

_______________________________

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

  • От авторов
    Обновление информации о SMUC, проблемы с дистрибуцией и планы на будущие выпуски ZX Format. Авторы затрагивают устаревшие данные о SMUC и проблемы распространения ZF-6. В предстоящем выпуске будут описания игр и новые проекты.
  • Аторы журнала
    Контактная информация и данные об редакционной команде для ZX-Format No.7. Предоставляются почтовые и электронные адреса, а также контактные телефоны. Информация о доступности их веб-сайта и конкретные инструкции по контактам.
  • Содержание номера
    Обзор значимых программных новинок на петербургском рынке этой осенью. Детальное описание игр, советы по программированию и проекты оборудования. Интервью, философские притчи и письма читателей дополняют выпуск.
  • Игрушки - Welcome
    Обзор новинок ПО для ZX Spectrum, включая игры как 'Los Angeles Drugs Bust' и 'Jungle Warfare'. Каждое описание игры предоставляет информацию о графике, геймплее и функциях. Охватываются различные жанры от экшена до стратегии, демонстрируя разнообразие программного обеспечения.
  • Игрушки - Алешкин А.В.
    Статья описывает игру 'TAI-PAN' как аркадно-экономическую игру, действие которой происходит на Востоке XIX века, с акцентом на торговле и выживании среди пиратов и опасностей. В ней рассматриваются игровые механики, такие как торговля товарами, управление финансами и навигация по морям на разных судах. Несмотря на занимательный сюжет и интерфейс, игра не получила широкой известности в России.
  • Игрушки - Soft
    Капризный рассказ в фантастическом мире, где цвета беседуют с Последним, персонажем, рассказывающим истории о древних людях, кодерах и загадочном прошлом. История исследует темы языка, перевода и создания 'Последнего' среди фантастических существ, таких как летающие бегемоты и морские жирафы. Она представляет собой художественный нарратив с юмористическими элементами, сочетая научную фантастику с сатирой.
  • Игрушки - Alex ASP
    Исследуется пародия на «Властелин колец» Толкина под названием «Тошнит от колец» от Delta 4. Текст ссылается на адаптации, юмористические приключения персонажей, таких как Фордо и Бимбо, и различающиеся версии Delta 4 за годы. Упоминаются ожидаемые приквелы и выдержки из переписки с Фергусом МакНейлом из Delta 4.
  • Игрушки - Гил-Гелад
    Статья представляет собой подробное руководство по работе с интерфейсом 3D Construction Kit для ZX Spectrum. Объясняются параметры меню для управления файлами, настройки игры и условий в игре. Также рассматривается создание объектов, их редактирование и реализация логики в программе.
  • Программистам - Дмитрий Рудовский
    Завершение описания команд ББ и советы по их использованию. Подробно описывается использование команды CLOCK для управления временем и будильником на ZX Spectrum. Также объясняется команда SORT для сортировки массивов и вводятся новые логические и математические функции.
  • Программистам - Angel
    Введение в программирование на ассемблере для начинающих с освещением базовых концепций и команд. Подробное объяснение регистров и флагов процессора с примерами. Предоставлены практические советы по переходу с Basic на ассемблер.
  • Программистам - GreenFort
    Обсуждение быстрых вычислений на ассемблере для задач, таких как векторная графика и астрономия. Описываются процедуры двоичного деления и умножения с примерами для разных размеров байтов. Подчеркивается адаптивность этих методов для повышения точности.
  • Программистам - TP, Stinger
    Подробное техническое описание формата файла Mod для музыкальной композиции на ZX Spectrum, с акцентом на структуру и смещения данных для названия, инструментов и паттернов.
  • Программистам - Research
    Статья описывает возможности и ограничения программы Convert, сосредотачиваясь на ее использовании для конвертации изображений в формат BMC. Включены технические детали о функциях программы, таких как методы дитеринга, вывод в формате спрайтов и экрана, и удаление лишних точек. Также кратко обсуждается исходный код X-Color и его возможные применения.
  • Обзор
    Статья обсуждает демо-пати ENLiGHT'97, состоявшуюся в Санкт-Петербурге 24 августа 1997 года, с участием платформ Spectrum, Amiga и ПК. Мероприятие собрало около 1100 делегатов, что привело к переполненности и техническим проблемам, из-за чего второй день был отменен. Несмотря на эти проблемы, мероприятие в целом было приятным, и есть надежда на его повторение в 1998 году.
  • Обзор
    Обзор выставки VideoFAIR в Манеже с акцентом на видео- и аудиооборудование. Amiga-service и различные компании представили свои технологические достижения в системах видеомонтажа и вещания. Примечательные инновации включают 3D дисплеи с лазерным сканированием и профессиональные аудио решения.
  • Железо - Nemo
    Обсуждение экспорта технологий KAY для децентрализации производства Spectrum. Выделяются потенциальные выгоды и проблемы местного производства. Акцентируется внимание на гарантии качества и системах поддержки.
  • Железо
    Статья описывает разработку новой материнской платы Scorpion, нацеленной на улучшение графики, скорости и совместимости с современными периферийными устройствами, такими как клавиатуры и мыши IBM. Представлена плата GMX (Graphic Memory Extension), предназначенная для модернизации существующих моделей Scorpion до возможностей новой материнской платы. Плата GMX предлагает значительные улучшения в объеме памяти, графике и скорости обработки, при этом сохраняя совместимость со стандартами ZX Spectrum и Pentagon.
  • Железо
    Статья предлагает детальный обзор двух популярных у пользователей ZX Spectrum в Санкт-Петербурге аудиоусилителей. В ней подчеркиваются преимущества и характеристики низковольтного усилителя 2 X 2W и автомобильного усилителя 2 X 22W. Также в статье представлен прайс-лист и инструкции по заказу через фирму 'Nemo'.
  • Примьера
    Статья описывает улучшения и особенности версии 1.1 Turbo Assembler для ZX Spectrum. Подчеркиваются отличия от версии 1.0, такие как исправления ошибок, изменения размера экрана и добавленные функции, например, редактор строк и проверка синтаксиса. Также подробно рассматривается распределение памяти и дается руководство по использованию функций редактора и компилятора.
  • Примьера - STS
    Описание Riff Tracker MOD-редактора для General Sound, его возможностей и функциональности. Подробные инструкции по редактированию и управлению сэмплами. Указаны ограничения текущей версии и ожидаемые улучшения.
  • Примьера - Paul Atrides, Alex Noman
    Презентация Oberon Creative Pack, состоящего из ZX-WinWord и Sprite Cutter. ZX-WinWord — текстовый редактор, совмещающий текст и графику с расширенными функциями. Sprite Cutter позволяет создавать и обрабатывать спрайты в различных форматах.
  • Примьера
    Презентация второй демоверсии игры Headball от ZX-Masters, обсуждение ее особенностей и улучшений с момента первой демки. Игра предлагает режим для двух игроков, четыре уровня, три типа снарядов, различные опции и настройки сложности компьютера. Наличие Turbo режима и улучшенная синхронизация и анимация делают ее уникальной среди других игр для Spectrum.
  • Интервью - Ruster
    Интервью с Digital Reality о текущих проектах, таких как DOOM и Paradise Lost. Обсуждение проблем и прогресса в разработке игр. Предварительный просмотр их представлений на мероприятии ENLiGHT.
  • Интервью - Ruster
    Интервью с участниками недавно сформированной группы EXTREME. Они работают над демо для платформ Spectrum и Amiga и обсуждают своих участников и деятельность. Интервью также касается состояния сцены Amiga в Москве.
  • Интервью - Борис Прытков
    Интервью с самарскими энтузиастами Spectrum о достижениях и вызовах. Акцент на развитие сообщества и выпуск журнала Oberon. Усилия по созданию сети Spectrum и конвертации игры WALKER.
  • Интервью - Борис Прытков
    Статья представляет собой интервью с членами группы Flash inc., обсуждающими свои проекты для ZX Spectrum и PC, включая музыкальный редактор с инновационным интерфейсом и новый мультиколорный графический редактор.
  • Интервью - Михаил Акимов
    Интервью с московской группой Progress, обсуждение их текущей работы над демо для Spectrum, планов на будущее на Amiga и мнения о российской демосцене.
  • Интервью - Михаил Акимов
    Интервью с Феликсом об изменениях в технологическом ландшафте, о стойкой привлекательности Amiga несмотря на доминирование PC и его работе над 'Винни Пух - 2' для Spectrum.
  • Интервью - Ruster
    Интервью со Slash о мероприятии ENLiGHT, включая вопросы спонсорства, поведение участников и качество музыки и демо. Обсуждение текущего состояния рынков Spectrum и Amiga. Комментарии о музыкальных трекерах и будущем аппаратного развития.
  • Интервью - Ruster
    Интервью с В. Медноноговым после ENLiGHT'97, обсуждение впечатлений от события, будущее Spectrum и его текущий проект 'Чёрный Ворон'. Медноногов делится своим мнением о новом оборудовании и разработке ПО, а также о важности авторских прав. Он также обсуждает свои планы на будущие проекты и проблемы, с которыми сталкивается в разработке игр.
  • Здесь был ты
    Сатирическое руководство по обретению власти и невидимости с помощью магических ритуалов и жевательной резинки Orbit.
  • Здесь был ты - Saggitarius
    Созерцательная новелла о существующем пути человека после встречи с загадочным человеком, предлагающим устройство, называемое Стоп-Краном. Через воспоминания главный герой размышляет о своей жизни, уникальности и желании вырваться из общественных ограничений. В конечном итоге он сталкивается с моральной дилеммой использования Стоп-Крана для преодоления времени и существования.
  • Почта - Eagle Soft
    Критика программного обеспечения ZX-Spectrum, выделение ограничений текущих программ и рекомендация удаления устаревших инструментов. Обсуждение ограничений ассемблерных программ и необходимость более эффективных ассемблеров, таких как M80. Оценка текущих музыкальных и графических редакторов, с акцентом на избыточность некоторых приложений.
  • Почта
    Обсуждение вопросов читателей о распространении и содержании ZX Format. Ответы включают информацию о приобретении номеров и технические сведения о компьютере KAY-256. Журнал также отвечает на критику статьи о рынке.
  • Почта
    Реклама освещает кампанию по распространению программного обеспечения XL Design Inc., предлагая игры, такие как 'Плутония', и готовящиеся к выпуску, например, 'Mortal Kombat'. Контроллеры мыши рекламируются с юмористическими акцентами и деталями цен. Студия ЛОГРОС предлагает широкий ассортимент программного обеспечения и периферии с возможностью локальных и удаленных покупок.
  • Разное - Александр Сысоев
    Обсуждается создание RPG-игры группой OBERON, вдохновленной 'Eye of Beholder'. Описан юмористический сюжет игры, действие которого происходит в далекой галактике, и борьба с захватчиками на планете Агима. Группа приглашает музыкантов, художников, кодеров и сценаристов для совместной работы.
  • Разное - Viator
    Описание разработки нового графического редактора под названием STATE OF THE ART для ZX Spectrum, направленной на улучшение существующих редакторов, таких как ART-STUDIO и ARTIST-2. Команда AVALON, вдохновленная отзывами сообщества художников SPECCY, включает функции редакторов на Amiga и PC, а также учитывает специфические запросы пользователей. Основные особенности включают удобный интерфейс, улучшенный режим увеличения, расширенные функции работы с фигурами и окнами, а также оптимизированную производительность.
  • Разное
    Обсуждение повышения потребительского качества компьютеров Spectrum без изменения их технических характеристик. Предлагаются улучшение существующей поддержки, разработка идеологии платформы и структурные изменения. Статья также затрагивает потенциал электронных книг и их коммерческую жизнеспособность.
  • Amiga Club - Максим Петров
    Статья описывает восхищение автора компьютером Amiga, подчеркивая его эстетические и технические достоинства по сравнению с другими платформами. Описываются программные опыты автора на Amiga, выделяя её эффективность и впечатляющие возможности новых аппаратных обновлений. В заключение статья размышляет об уникальном сообществе и увлеченности энтузиастов Amiga.