ZX-Ревю 1991 №3 1990 г.

Megabasic - продолжение.


Команда FONT_

МЕГАБЕЙСИК может оперировать с тремя наборами символов. Выбор набора выполняется с помощью команды FONT_ после которой записывают число, указывающее на выбранный набор:

FONT_0 - обычные символы компьютера ZX SPECTRUM;

FONT_1 - символы, подобные применяемым в компьютерах фирмы BBC, например в "MICRO ELECTRON";

FONT_2 - символы, подобные применяемым в компьютерах фирмы AMSTRAD, например в CFC 464.

Новые символьные наборы хранятся в ОЗУ: 1ый - с адреса 46000, а 2ой - с адреса 45000. Адрес произвольного символа из набора может быть найден по формуле S+8*(CODE А$-32), где S - начальный адрес символьного набора. Поскольку адреса Вам известны, Вы можете сами загружать туда какие Вам нужно наборы, предварительно приготовив их, например с помощью программы ARTSTUDIO.

Команды CHR$, VDU, DOWN.

Символьный набор ZX SPECTRUM содержит печатаемые и управляющие символы. Несколько новых управляющих символов входит в МЕГАБЕЙСИК.

CHR$1...CHR$4 - выбор режима очередного окна;

CHR$7 - установка символа в позицию курсора;

CHR$24...CHR$31 - выбор окна для выходной информации. CHR$24 - окно 0, CHR$31 -окно 7.

Новая команда VDU_ эквивалентна PRINT CHR$. При записи VDU_65,56 на экране появится "АВ". Строка символов может быть выведена в нижнюю часть экрана по команде DOWN_y^^$, где y и x - соответственно строка и столбец, на которые выводится строка символов, а$ - строка выводимых символов.

Команды SPRINT и PRINTER.

Командой SPRINT_x^,a,b,a$ можно вывести на экран символы любого размера. Здесь x,y - позиция первого символа на экране; a и b - коэффициенты увеличения символа в направлении x и y соответственно; a$ - строка выводимых символов. Если достигнут правый край экрана, то запись появляется с левой стороны.

Команда PRINTER, обеспечивает вывод на принтер. Если после этой команды будет записан 0, то вывод будет выполняться только на экран, любое другое число - на принтер. Адрес подпрограммы вывода на принтер, написанной в машинных кодах - 59934. Обратите внимание, что в МЕГАБЕЙСИКЕ нет команд CLEAR#, OPEN#2 и CLOSE#2.

ГРАФИКА.

Команды CHANGE и SWAP.

В МЕГАБЕЙСИК включены некоторые команды, которые позволяют пользователю непосредственно манипулировать с файлом атрибутов. Команда CHANGE_ позволяет изменить определенную часть байтов атрибутов. После этой команды записывают 2 числа, представляющие собой маску и данные. Маска определяет какой из битов каждого байта файла атрибутов должен быть изменен. Данные указывают в чем должно состоять это изменение:

CHANGE_1 - логическое NOT. Все 1 в каждом байте становятся 0, а 0 становятся 1;

CHANGE_2 - логическое AND между всеми байтами файла атрибутов и значением маски;

CHANGE_3 - логическое OR между байтом атрибутов и байтом данных.

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

Команда FADE_

С помощью этой команды можно получить особые эффекты. Введите и запустите следующую короткую программу:

10 FOR A=0 TO 703 20 POKE 22528+A,PEEK A 30 NEXT A 40 FADE_0

Первые три строки этой программы обеспечивают заполнение файла атрибутов случайными числами, в 40-й строке по команде FADE_0 выполняется сравнение значения каждого байта файла атрибутов с числом, записанным после этой команды. Если эти значения равны, то байт остается неизменным, если же нет, то значение байта в файле атрибутов изменяется, пока не станет равным записанному числу.

Команда INVERT.

Это простая команда, по которой инвертируется весь экран, цвет INK изменяется на цвет PAPER, а цвет PAPER - на цвет INK.

Команда DEFG_.

Способ, позволяющий создавать в стандартном БЕЙСИКе новые символы графики пользователя (UDG) довольно громоздок. В МЕГАБЕЙСИКЕ же эта задача решается с помощью одной команды DEFG_, после которой записывается символ (любая из литер от a до u) a затем 8 чисел, разделенных запятыми. Символ определяет местонахождение UDG, а числа - его форму.

Команды GET_ и PUT_.

В МЕГАБЕЙСИКЕ можно запомнить часть изображения экрана в ОЗУ, и при необходимости вернуть это изображение на экран в любую позицию. Для передачи части экрана в ОЗУ используют команду

GET_0,a,y,x,d,w.

Здесь: a - адрес, начиная с которого хранится в ОЗУ изображение экрана, у,х -соответственно номер строки и номер столбца верхнего левого угла сохраняемого участка экрана, d,w - длина и ширина этого участка. Команды GET_ и PUT_ применяют такую же координатную систему, что и команды АТТR и SCREEN$. Их координаты абсолютны и не зависят от положения верхнего левого угла окна на экране. Число байтов, занимаемых изображением экрана в ОЗУ, определяется по формуле 64*w*d.

Команда PUT_ прямо противоположна по действию команде GET_. Записывается она в следующей форме: PUT_f,a,y,x,d,w. Здесь f определяет способ восстановления изображения экрана:

f=0 - изображение из ОЗУ переписывается в дисплейный файл без изменений;

f=1 - восстановление изображения осуществляется через логическое OR значений дисплейного файла и сохраняемого в 03V изображения;

f=2 - восстановление через логическое XOR;

f=4 - тоже, что и f=0, но вместо хранимых в памяти используются значения текущих атрибутов;

f=5 - тоже, что и f=1, но используются текущие атрибуты;

f=6 - тоже, что и f=2, но используются текущие атрибуты.

Переменные a,x,y,d,w аналогичны определяемым в команде GET.

Команда SPUT_.

Это вариация команды PUT_, позволяющая не только восстановить изображение экрана, но и увеличить его:

SPUT_a,x,y,b,c,w,d

Здесь: a - начальный адрес блока в ОЗУ; x,y - координаты верхнего левого угла экрана при восстановлении изображения: b,c - коэффициента увеличения по оси x и y соответственно. При этой команде всегда используются текущие атрибуты, а координатная система точно такая же, как и для команды SPRINT.

Продолжение в следующем выпуске.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - содержание номера.
Как написать в Oberon - Написать статью в "ОБЕРОН" очень просто!
Статья - 5837.
Список BBS - ZX-Net 095, Независимые BBS, SuperNet.
Merced - Кoмпaния Нewlett-Packard (НP) плaниpyет нaчaть пpoизвoдствo кoмпьютеpoв нoвoй apхитектypы.

В этот день...   29 марта