Простая графическая анимация, изображающая логотип Ocean Pacific восьмидесятых годов.

К концу 2020 года у меня появилось несколько идей для новых программ ZX81. Большинство из них были графическими программами разного рода. Темы варьировались от изображений пожара в мусорном баке, адвент-календаря, вирусного экшена до одиночной ролевой игры. Хотя все они были отличными идеями, я не думал, что получу хоть одну из них достаточно полной, чтобы опубликовать. В итоге я решил ввести в одну из своих старых графических программ Ocean Pacific logo.

# ZX81 такой медленный?

Запустив программу, я быстро утомлю вас, наблюдая за тем, как она рисует букву O и вершину буквы P. Хотя в ZX81 были отличные математические процедуры, она все делает с плавающей запятой. Это, как правило, делало их медленными. Различные SIN, COS, TAN и их дуговые версии являются худшими нарушителями. Таким образом, рисование кругов похоже на наблюдение за тем, как сохнет краска.

К счастью, рисовать линии намного быстрее. Остальная часть программы почти кричит, как только круги нарисованы. Мне пришлось заполнить несколько мест, используя обычные команды PLOT. Текст представляет собой утверждение PRINT, я не пытался рисовать слова. Я мог бы сделать кернинг получше на P и C в pacific. Помимо этого, логотип выглядит довольно хорошо для почти 40-летнего компьютера с квадратной черно-белой графикой.

OP, ZX81 Скриншот Стивена Рида, 2020 г.

Исходная программа печатала на подключенный принтер с помощью команды COPY. У меня до сих пор где-то плавают мои распечатки, я заламинировал парочку. Забавно то, что я не помню, чтобы у меня была одежда для ОП. Поскольку я не ожидал, что большинство людей захотят напечатать логотип, я заменил эту процедуру. Я добавил задержку, используя еще немного математики, и эффект очистки экрана. Вы можете обойти задержку, нажав любую клавишу.

# Здесь нет аргументов.

Что касается кода, вы обнаружите, что OP работает так же, как и другие мои программы для рисования (Bolt или TS). Есть две процедуры рисования. Начиная с 1000 можно найти функцию, печатающую строку. Начиная с 2000 года, это простая круговая рутина. Здесь нет сложной математики. Программа представляет собой набор LET операторов, определяющих аргументы, и GOSUB соответствующих функций. О, как все было просто тогда. Лишь бы ZX81 поддерживал настоящие функции.

Как и мою последнюю программу, я сначала записал ее в текстовый файл. Затем я скопировал его в JSZeddy для компиляции. Я столкнулся с небольшой проблемой, когда строки с X1 или Y1 нужно было вводить снова. Они отображались правильно, но ZX81 выдавал ошибку нехватки памяти при попытке их запустить. Это было легко исправить, но мне нужно будет посмотреть.

# Больше менять нечего.

Помимо проблем с кернингом, которые я отметил выше, я мог бы сделать буквы лучше. Сам логотип приличный и в доработке не нуждается. Мне нравится, как волны вышли. Код может быть грубым, но он работает. Я мог бы создать массив или что-то в этом роде, но это означало бы много ввода без реального значения.

Как следует из названия, я бы ничего не сделал по-другому. И это лучший способ закончить год. Приятно завершить приличную программу ZX81 из моей юности, которая хорошо работает, хорошо выглядит и не слишком сложна для входа.

В 2021 году я планирую поработать над новыми идеями. У меня есть несколько более крупных программ, которыми я еще хочу заниматься с детства. Теперь мне нужно убедиться, что я найду время, чтобы сделать их все.

Первоначально опубликовано на https://www.reids4fun.com 27 декабря 2020 г.