Языки программирования: Мега-Бейсик, Бета-Бейсик, Бета-Бейсик, Лазер-Бейсик, ZX-Форт, Паскаль HP4TM 1993 г.

MEGA-BASIC - основные характеристики. Клавиатура. Вывод на экран.


MEGA - BASIC

ИНФОРКОМ выражает глубокую
признательность Пашорину В.И. из
города Балашова Саратовской обл.,
который выполнил перевод с ан-
глийского языка фирменной ин-
струкции. Техническое редактиро-
вание и вступительная статья -
наши.

ОСНОВНЫЕ ХАРАКТЕРИСТИКИ

1. Программ^.занимает порядка 20К и располагается в верхних об-
ластях ОЗУ.

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

3. Каждый из э.тих шрифтов может одновременно (!) в пределах од-
ного экрана изображаться четырьмя размерами от 16 до 64 знаков в
строке.

4. Дополнительно к этому Вы можете легко печатать символами
любого размера (хоть во весь экран), можете делать из них "бегу-
щую строку" .

5. Возможно создание и использование до 10 окон в пределах эк-
рана. произвольный, "скроллинг" изображения по горизонтали и вертика-
ли в окне. Уникальная возможность иметь на экране одновременно и
листинг программы в одном окне и результат ее работы в другом.

6. Широкие возможности структурного программирования благодаря
наличию понятия "Процедура". Большие программы сразу перестают быть
проклятьем БЕЙСИКа, появляется возможность коллективного написания
программ, более того, созданные Вами процедуры Вы можете переносить
из программы в программу без изменений, создав себе тем самым библи-
отеку и сократить тем самым время на разработку новых программ про-
центов на 80, а может быть и больше.

7. Новые операторы цикла.

8^Дополнительные отладочные операторы.

9. Улучшенные возможности управления звуком.

10. Встроенный монитор для легкого внедрения в машинный код с
целью проверки и внесения изменений.

Обращаем Ваше внимание и на то, что MEGABASIC поддерживает и
все команды и фунуции стандартного встроенного БЕЙСИКа и, поскольку
приступая к новому языку, Вы по крайней мере с ними должны быть зна-
комы, мы АБСОЛЮТНО не будем рассматривать стандартные команды, а
остановимся только на новых.

1. КЛАВИАТУРА

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

две нижние строки, как при работе со стандартным БЕЙСИКОМ, содержа-
щимся в ПЗУ компьютера.

Попытайтесь записать несколько символов с клавиатуры, и Вы за-
метите, что привычные Вам ключевые слова, соответствующие нажатой
клавише не появляются на экране, а появляются только одиночные сим-
волы. Теперь Вам придется записывать все операторы полностью - так,
как это делается на большинстве компьютеров.

Например, чтобы набрать слово PRINT, Вам уже недостаточно просто
нажать на клавишу "Р", а придется набрать ,P',,R,,,I,,,N,,,T' пол-
ностью. Впрочем, некоторые операторы, пришедшие из БЕЙСИКа, можно
записывать и в сокращенной форме, но она должна заканчиваться точ-

кой. Ниже мы

привели

список этих

ключевых

слов, указав, где должна

стоять точка,

A.TTR

BE. ЕР

В. IN

BO.RDER

BR.IGHT

CH.R$

CI.RCLE

CLE.AR

CL.OSE#

С. ODE

CON.TINUE

DA. ТА

D.EF FN

DR. AW

ER.ASE

E.XP

FL.ASH

F.ORMAT

GO S.UB

G.O TO

I.NKEY$

INP.UT

INV.ERSE

L. EN

LI .NE

LL.1ST

LP.PRINT

LO.AD

ME.RGE

M.OVE

NE.XT

N.OT

OP.EN#

OV.ER

PA.PER

PAU.SE

PE.EK

PL. ОТ

P.OINT

PR.INT

RA.NDOMIZE

RE. AD

RES.TORE

RET.URN

R.ND

SA. VE

S.CREEN$

ST. R$

T.AB

TH.EN

U.SR

V. AL$

VE.RIFY

При записи операторов типа GO ТО не забывайте делать пропуски.
Компьютер поймет GO ТО, но при записи GOTO выдаст сообщение об ошиб-
ке SYNTAX ERROR.

Нижняя строка показывает режим курсора:

'L' - литерный строчный (CAPS OFF);

'С' - литерный прописной (CAPS ON);

'G' - графический;

'Е' - расширенный EXTENDED.

РЕДАКТИРОВАНИЕ

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

КЛАВИШИ УПРАВЛЕНИЯ РЕДАКТОРОМ:

КЛАВИШИ УПРАВЛЕНИЯ РЕДАКТОРОМ:

КЛАВИША

НАЗНАЧЕНИЕ

EDIT

копирование очередного символа в'буфер редактора

TRUE VIDEO

удаление всей строки

INV. VIDEO

удаление символа справа от курсора

CURS.LEFT

перемещение курсора влево на один символ

CURS.RIGHT

вправо на один символ

CURS.UP

вверх на один символ

CURS.DOWN

вниз на один символ

DELETE

удаление символа слева от курсора

<=

перемещение курсора в начало строки

<>

удаление всех символов от курсора до начала строки

>=

перемещение курсора в конец строки

SCREENS

листинг программы

OR

перемещение указателя текущей строки вверх и листинг

AND перемещение указателя текущей строки вниз и листинг

STOP перемещение COPY-курсора влево

NOT то же, но вниз

STEP то же, но вверх

ТО то же, но вправо

AT Копирование символа от COPY-курсора к выходному курсору

Эта команда может использоваться только при работе с
символами стандартного размера, но не в режимах 64 знака
в строке и не с символами двойной ширины и высоты
OVER перемещение COPY-курсора на следующе окно

INVERSE возвращение COPY-курсора в левый верхний угол окна.

В режиме редактирования на экране присутствуют три окна.

0 - окно индикации информации, поступающей от пользователя и
выдачи сообщений об ошибках.

1 - окно автоматического листинга программы.

2 - окно выходной информации.

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

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

КЛАВИШИ, ОПРЕДЕЛЯЕМЫЕ ПОЛЬЗОВАТЕЛЕМ (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 .

у-номер строки верхнего левого угла окна (0...23);
х-номер столбца верхнего левого угла окна (0...63);
d-высота окна в строках;
w-ширина окна в столбцах;

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

WINDOW ТОО LARGE

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

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

КОМАНДЫ CLS И СШ_

Команду 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, О-цвет PAPER), а второе показы-
вает, в каком направлении будет смещение и на какую величину. Для
команды PAN_: если второе число положительное, то перемещение выпол-
няется вправо, если отрицательное, то влево. Для команды SCROLL:
положительное число - перемещение вверх, отрицательное - вниз.

Вы можете также не только сдвигать содержимое экрана, но и ис-
полнять его прокрутку. Для этого используют команды PANW_ и
SCROLLW. Параметры этих команд точно такие же, как и для команд
PAN_ и SCROLL. Эти команды действуют только на дисплейный файл.

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

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

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

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

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

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

10 BORDER 0

2 0 CURRENT0: WINDOW_0,0,15,32

30 PAPER 2: INK 7: CLW_0

40 CURRENT1:WINDOW_0,32,22,32

5 0 PAPER 1: INK 7: CLW_0

6 0 CURRENT2: WINDOWl5,0,7,32

7 0 PAPER 7: INK 1: CLW_0

КОМАНДА MODE_.

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

M0DE_n,l - каждый символ записан в матрицу 4x8 пикселов;
M0DE_n,2 - обычный размер символов, т.е. 8x8 пикселов;
M0DE_n,3 - символы двойной высоты 8x16 пикселов;
MODEn,4 - символы размером 16x16 пикселов.

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

КОМАНДА FONT_

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

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

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

F0NT_2 - символы, подобные применяемым в компьютерах фирмы
"Амстрад", например в СРС 464.

Новые символьные наборы хранятся в ОЗУ:
1ый - с адреса 48000,
2ой - с адреса 45000.

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

КОМАНДЫ CHR$,VJXJ,DCmi.

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

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

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

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

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

КОМАНДЫ SPRINT U PRINTER.

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

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




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
С миру по биту - письма читателей, Спектрум умер или еще нет?
Приход - Ведь и вправду никто не надеялся когда либо увидеть живой психоз!
Железо - Руководство по программированию самой крутой звуковой карты - DMA USC.
Сделай сам - контроллер принтера на ZX Spectrum. Доработка контроллера дисковода ФАПЧ.
Software - Обзор игровых програкмм: Зеркало, Лабиринты смерти, Уголки, Крестики и нолики.

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