ZX идеи - Выравнивание текста по правому краю в BASIC и ренумерация программ машинным кодом для ZX Spectrum

ZX Revija #03

ZX Занимательности

A) Выравнивание текста по правому краю · B) Процедура перенумерации на машинном коде · C) Вирусы · D) Золотой век «Радуги»

A) Выравнивание текста по правому краю

Если вы выводите текст на экран, выровнять его по левому краю можно просто с помощью команды. Но если нужно вывести текст так, чтобы он был выровнен по правому краю, придётся придумать небольшую хитрость. Вот процедура на BASIC, которая решает эту задачу:

1 INPUT "КОЛИЧЕСТВО ТЕКСТОВ=";N
2 INPUT "ПОЗИЦИЯ ПОСЛЕДНЕГО СИМВОЛА=";L
3 FOR I=1 TO N
4 INPUT ("ВВЕДИТЕ ТЕКСТ: ";I;");A$
5 LET P=L-LEN A$
6 PRINT TAB P;A$
7 NEXT I

Эту процедуру можно использовать в любой своей программе. Её суть — в строках 5 и 6. Остальные строки лишь дополняют её для наглядности.

Следите только за тем, чтобы не использовать переменные, задействованные здесь, в других частях программы: это может привести к неправильной работе основной программы.

В этой процедуре они, вероятно, получат другие значения, и после возврата из подпрограммы это может вызвать неожиданные последствия, если вы будете невнимательны.

B.J.

B) Процедура перенумерации на машинном коде

Эта процедура очень короткая и простая.

Она не может перенумеровать аргументы после команд GO TO, GO SUB и RESTORE.

Процедура перемещаемая: её можно загрузить в любое место памяти компьютера.

Сначала процедура дана в десятичном виде, затем — в ассемблерном. Для ввода можно использовать простой загрузчик или ассемблер.

ДЕСЯТИЧНЫЙ ВИД        АССЕМБЛЕРНЫЙ ВИД

65000                 LD HL,(23635)
65004                 LD BC,10
65007                 LD DE,10
65010                 PUSH DE
65011                 PUSH HL
65012                 LD DE,(23627)
65016                 XOR A
65017                 SBC HL,DE
65019                 POP HL
65020                 POP DE
65021                 RET Z
65022                 PUSH BC
65023                 LD (HL),D
65024                 INC HL
65025                 LD (HL),E
65026                 INC HL
65027                 LD C,(HL)
65028                 INC HL
65029                 LD B,(HL)
65030                 INC HL
65031                 ADD HL,BC
65032                 EX DE,HL
65033                 POP BC
65034                 ADD HL,BC
65035                 EX DE,HL
65036                 JR ADDR+10

Перед запуском программы по адресу 65005/6 нужно задать шаг, а по адресу 65008/9 — начальный номер перенумерации.

В программе для обоих аргументов установлено значение 10. Запустите процедуру командой:

RANDOMIZE USR 65000

B.J.

C) Вирусы

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

С жёсткого диска его ещё как-то можно удалить, но из памяти — очень трудно.

Оказавшись в памяти, вирус постоянно записывается и на следующую дискету. Одним из самых известных в начале был вирус «Пятница, 13-е»: в этот день он активировался и уничтожал введённые к тому времени данные (например, в V.B. так были уничтожены данные, которые вводили в течение четырёх лет).

По последним данным, существует более 3000 различных вирусов (программ для создания мусора на PC). Защититься от заражения помогает программа SCAN: она распознаёт вирусы до того, как вы начнёте пользоваться дискетой на своём PC. Программа проверяет, заражена ли дискета, и сообщает об этом. Если у вас нет ВАКЦИНЫ для удаления вируса, такую дискету лучше выбросить.

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

Пока для Spectrum не известен ни один вирус, так что за свою «РАДУГУ» можно не беспокоиться.

č.S.

D) ЗОЛОТОЙ ВЕК «РАДУГИ»

Всё началось не так давно — в 1980 году, когда бывший журналист и неудачливый предприниматель Клайв Синклер выпустил в продажу первый британский домашний компьютер ZX-80. Точнее, его начала продавать компания Science of Cambridge, известная производством недорогой Hi-Fi-аппаратуры. Он стоил меньше 200 фунтов — тогда это было около 8 000 динаров. Компьютер очень походил на настоящую «Радугу».

Он работал на микропроцессоре ZX-80. Целую кучу микросхем заменил ULA-чип, ПЗУ с BASIC увеличили до 8 Кбайт, а компьютер научился выполнять вычисления с десятичными числами.

ОЗУ составляло 1 Кбайт, с возможностью расширения до 16 Кбайт.

На экране помещалось 22×32 символа, а использовался язык Inter BASIC.

Этот компьютер с магнитофоном и телевизором можно было назвать первой домашней микрокомпьютерной системой. Так начался золотой век «Радуги».

В 1981 году под новым названием фирмы Синклера — Sinclair Research — вышел компьютер ZX-81.

Его размеры составляли 17,5×16,5 см, а клавиатура была размером 16×6,5 см.

Он был чёрным и имел 40 клавиш (4×10). Работал по принципу «одна клавиша — одна команда», но клавиша ENTER называлась NEW LINE. Он также работал на процессоре ZX-80. ОЗУ составляло всего 1 Кбайт, а ПЗУ — 16 Кбайт, что уже было шагом вперёд.

Возможность расширения ОЗУ до 16 Кбайт сохранилась.

Компьютер можно было подключить к магнитофону. Экран остался прежним (22×32), зато он работал на Sinclair BASIC. К нему также можно было подключить принтер.

Сначала он стоил меньше 200 фунтов, а ближе к концу продаж — 80 немецких марок с 16 Кбайт ОЗУ. Напоследок перечислим особенности компьютеров Синклера: небольшие размеры, пластик и резина в конструкции, а главное — низкая цена.

Из-за низкой цены у «Спектрумов» (по крайней мере, первых версий) нет никаких интерфейсов, кроме общего, а клавиатура у них мембранная, из бумаги и пластика, с резиновыми клавишами.

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

На этом пока всё — до следующего номера!

Ч. С.

Поделитесь вашим мнением о статье