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

Mega-basic - продолжение.


Клавиши, определяемые пользователем (UDK)

В МЕГАБЕЙСИКе есть возможность запрограммировать верхний ряд клавиш для выполнения определенных функций. Для этого применяется команда KEY_, за которой должны быть записаны числовое и символьное выражения. Числовое выражение определяет какая из клавиш программируется, а символьное - задает значение этой клавише. Записывая ENTER (CHR$13) в конце символьного выражения, Вы обеспечиваете тем самым автоматическое выполнение назначенной команды после нажатия заданной клавиши UDK. В МЕГАБЕЙСИКе уже встроены некоторые UDK:

VERIFY - здесь в символьном выражении уже записана последовательность 'RUN+ CHR$13'. При нажатии этой клавиши выполняется очередная программа.

VAL$ - в символьном выражении здесь записано 'LOAD "": RUN+CHR$13'. При нажатии этой клавиши включается загрузка и автоматический запуск очередной записанной на кассете программы.

Клавиши управления

Во время выполнения программы клавиша "ПРОБЕЛ" может быть использована как новая SHIFT-клавиша для выполнения следующих функций: CONTROL F- вызов фронт-панели.

CONTROL Е- останов выполнения программы, выдача на экран сообщения и переход к режиму редактирования строк.

CONTROL R- останов программы, выставление начальных значений PAPER, INK, BORDER и переход к редактору строк.

2. Вывод на экран Окна

Размер символов, их форма, а также способ их вывода на экран значительно расширяют в МЕГАБЕЙСИКе возможности "СПЕКТРУМа". Например, в МЕГАБЕЙСИКе возможно ограничить плошадь экрана для выходной информации. Эта площадь может быть любого размера. Отдельные участки экрана определяются как "окна". Каждое окно имеет свой номер. Язык позволяет Вам работать с 10 окнами, которые пронумерованы от 0 до 9, и все могут быть использованы в программах. Правда, как мы уже отмечали выше, некоторые окна уже закреплены за определенными операциями, например все операторы PRINT в программе используют для выдачи информации окно 2, но у Вас есть возможность перейти на другое окно с помощью команды CURRENT_. За этой командой должно идти числовое выражение, которое определяет номер назначенного окна. Если результат этого числового выражения оказывается больше 9, то выдается сообщение о том, что окно задано неправильно:

ILLEGAL WINDOW

Окна могут иметь любой размер и занимать произвольное положение на экране. Для определения размера и положения окна используется команда WINDOW_y,x,d,w y -номер строки верхнего левого угла окна (0...23); х-номер столбца верхнего левого угла окна (0...63); d-высота окна в строках; w-ширина окна в столбцах;

Таким образом, в МЕГАБЕЙСИКе весь экран разбивается на 24 строки и 64 столбца. Функции ATTR и SCREEN$ используют старую координатную систему, a PRINT AT - новую. Кроме того, координаты PRINT AT задаются относительно левого верхнего угла окна, а функции SCREEN$ и ATTR по-старому используют абсолютные координаты экрана. Если координаты окна превышают возможные размеры экрана, то Вы получите сообщение, что окно слишком велико, т.е. если 'y+d>24' или если 'x+w>64', то следует сообщение

WINDOW TOO LARGE,

Если же значения d и w меньше нуля, то следует сообщение

WINDOW TOO SMALL.

После выполнения команды WINDOW, очередной позицией для вывода на экран становится верхний левый угол окна.

Команды CLS и CLW_

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

CLW_n,0 - затушевка окна цветом PAPER;

CLW_n,1 - затушевка окна цветом INK;

CLW_n,2 - инвертирование. Цвет PAPER меняется на цвет INK;

CLW_n,3 - очистка атрибутов без изменения содержимого окна. Команда CLW_ всегда использует текущие атрибуты. Так, например, если текущим является окно 3, то после выполнения команды CLW_0,0 окно 0 будет затушевано с использованием атрибутов окна 3.

Команды PAN и SCROLL.

В YSMB имеется возможность перемещать пиксел за пикселом очередное окно экрана во всех направлениях. Команда PAN_ позволяет перемещать окно по горизонтали, а команда SCROLL_ - по вертикали. После этих команд должны быть записаны два числа: первое определяет цвет кромки экрана (1-цвет INK, 0-цвет PAPER), а второе показывает, в каком направлении будет смещение и на какую величину, Для команды РАN_: если второе число положительное, то перемещение выполняется вправо, если отрицательное, то влево. Для команды SCROLL_: положительное число - перемещение вверх, отрицательное - вниз. Возможно также содержимое экрана прокручивать. Для этого используют команды PANW_ и SCROLLW_. Параметры этих команд точно такие, как и для команд PAN_ и SCROLL_. Все эти команды действуют только на дисплейный файл.

Задание окон для конкретных целей осуществляется по команде FX_, за которой следует 2 числа: первое указывает, для каких целей предназначено это окно, а второе -определяет номер окна.

FX_0,n - определяет окно n для входной информации и сообщения об ошибках;

FX_1,n - определяет окно n для автоматического листинга;

FX_2,n - определяет окно n для выходной информации;

FX_3,n - определяет окно n для фронт-панели.

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

10 BORDER 0

20 CURRENT_0: WINDOW_0,0,15,32 30 PAPER 3: INK 7: CLW_0 40 CURRENT_1:WINDOW_0,0,32,22,32 50 PAPER 1: INK 7: CLW_0 60 CURRENT_2: WINDOW_15,0,7,32 70 PAPER 7: INK 1: CLW_0

Команда MODE_

Используя команду MODE, можно получить 4 различных размера символов, выводимых на экран:

MODE_n,1 - каждый символ записан в матрицу 4x8 пиксел;

MODE_n,2 - обычный размер символов, т. е. 8x8 пиксел;

MODE_n,3 - символы двойной высоты 8x16 пиксел;

MODE_n,4 - символы размером 16x16 пиксел.

Как Вы видите, за командой MODE_ должно быть записано одно или два числа.

Первое число указывает номер окна, а второе - размер символов. Для каждого окна могут быть заданы свои размеры символов. При использовании команды MODE_n,4 возможно получение символов с оттенками, так как в этом случае каждый пиксел символа занимает 4 пиксела экрана. Задание интенсивности тени осуществляется по команде STIPPLE_, после которой записывают число (0...15) определяющее интенсивность тени.

(Продолжение следует)




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Kaktus - Воззвание к читателю.
Письма - Размышления о недостатках клавиатуры Спектрума.
Сказки чОрного кота - Проблемы эволюционной классификации.
scene more! - Minsk e-paper scene.
IS-DOS - Faq: Ответы на часто задаваемые вопросы.

В этот день...   20 апреля