xl
	GRAF.REL - библиотека графических функций
      для БЕЙСИК-компилятора BASCOM.COM


	В этой версии графические примитивы, рисуемые
функциями из библиотеки, должны целиком умещаться на экране.
	Диапазон координаты по горизонтали от 0 до 511, по
вертикали от 0 до 255.
	Вызов функций осуществляется с помощью оператора
	CALL имя-функции[(аргумент1,...,аргументN)]
Если функция имеет аргументы, то они должны быть INTEGER - пе-
ременной (двухбайтной). Tо есть переменная заканчиваться зна-
ком % .
	Исключение функция LUT ,где аргумент - строковая пере-
менная.

	Подключение библиотеки  GRAF.REL осуществляется редак-
тором связей LINK.COM для БЕЙСИК-компилятора.

Пример:	 A>BASCOM =PROBA<ВК>
	 A>LINK PROBA/N,PROBA,GRAF/E<ВК>

	Первой рекомендуется использовать функцию COLOR
так как в ней устанавливается цветовой режим работы.

	ФУНКЦИИ БИБЛИОТЕКИ

SCREEN - выбор графических страниц
    Обращение к функции : CALL SCREEN(NA%,NV%)
    Аргументы:  NA% - номер активной графической страницы для
		работы с процессором: NA% = 0...3
		NV% - номер видимой графической страницы, ото-
		бражаемой на экране дисплея: NA% = 0...3

LUT - заполнение просмотровой таблицы(полностью)
    Обращение к функции : CALL LUT(A$)
    Аргументы:	A$ - строковая переменная определяющая содер-
		жимое просмотровой таблицы. Длина константы
		присваимой строковой переменной должна быть
		16 символов. Первые 8 символов константы соот-
		ветствуют логическим цветам 0-7 при погашен-
		ной точке алфавитно-цифрового дисплея, послед-
		ние 8 символов - соответственно при зажженной.
  Пример.  A$="0123456777777777"
	0 - черный
	1 - синий
	2 - зеленый
	3 - голубой
	4 - красный
	5 - лиловый
	6 - желтый
	7 - белый

COLOR - задание цвета (устанавливается цветовой режим)
    Обращение к функции: CALL COLOR(A%)
    Аргументы: A% - логический цвет( 0 - черный, 1 - синий
		2 - зеленый,	3 - голубой, 4 - красный
		5 - лиловый,6 - желтый, 7 - белый)

Пример.  A%=4
	 CALL COLOR(A%)  - установится красный цвет

PCLS - заполнение экрана заданным цветом
    Обращение к функции: CALL PCLS
    Аргументы: нет
	Физический цвет экрана задается функцией COLOR
Пример.  CALL PCLS

PSET - рисование точки
    Обращение к функции: CALL PSET(X%,Y%)
    Аргументы: X%, Y% - координаты точки: X% = 0...511
					  Y% = 0...255
	Физический цвет точки задается функцией COLOR
Пример.  X%=200 : Y%=300
	 CALL PSET(X%,Y%)

BOX - рисование прямоугольника
    Обращение к функции: CALL BOX(X1%,Y1%,X2%,Y2%)
    Аргументы: X1%,Y1%,X2%,Y2% - координаты любой пары проти-
		воположных углов.
		X1%,X2% = 0...511, Y1%,Y2% = 0...255
	Физический цвет прямоугольника задается функцией COLOR

FBOX - рисование заполненного прямоугольника
    Обращение к функции: CALL FBOX(X1%,Y1%,X2%,Y2%)
    Аргументы: X1%,Y1%,X2%,Y2% - координаты верхнего левого и
		нижнего правого углов соответственно:
		X1%,X2% = 0...511, Y1%,Y2% = 0...255
		X1% < X2% , Y1% < Y2%
	Физический цвет заполненного прямоугольника задается
	функцией COLOR

LINES - рисование линии
    Обращение к функции: CALL LINES(X1%,Y1%,X2%,Y2%)
    Аргументы: X1%,Y1%,X2%,Y2% - координаты граничных точек
		линии

CIRCLE - рисование окружности
    Обращение к функции: CALL CIRCLE(X%,Y%,R%)
    Аргументы: X%,Y% - координаты центра: X% = 0...511
		Y% = 0...255, R% - радиус окружности. По оси X
		R% = 0...128
	Физический цвет окружности задается функцией COLOR


GETOK - запись в буфер ОЗУ прямоугольного образа ГЗУ
    Обращение к функции: CALL GETOK(BUF%,X1%,Y1%,X2%,Y2%)
    Аргументы: X1%,Y1% и X2%,Y2% - координаты любой пары проти-
	      воположных углов прямоугольной области на экра-
	      не X1%,X2% = 0...511, Y1%,Y2% = 0...255;
	      BUF% - адрес буфера для сохранения графического
              образа. Размер буфера должен быть не меньше, чем
	      5+(abs(Y1%-Y2%+1)*(abs(X2%/8-X1%/8)+1))*3

PUTOK - вывод прямоугольного графического образа из буфера ОЗУ
	на экран
    Oбращение к функции: CALL PUTOK(BUF%,X%,Y%)
    Аргументы: X%,Y% - координаты верхнего левого угла графи-
	      ческого образа на экране;
	      BUF% - адрес буфера, содержащего графический об-
	      раз (смотри функцию GETOK). Выводимый образ в
	      данной версии библиотеки должен целиком помещать-
	      ся на экране.

	Пример программы на BASIC с использованием графи-
      ческих функций библиотеки GRAF.REL

	10 INPUT "lut",TAM$
	20 CALL LUT(TAM$)
	30 A%=4
	40 CALL COLOR(A%)
	50 FOR I=1 TO 125
	60 X1%=180+100*COS(I/20)
	70 Y1%=90+80*SIN(I/20)
	80 RAD%=45-I/3
	90 CALL CIRCLE(X1%,Y1%,RAD%)
	100 NEXT
	110 INPUT "fbox",X2%,Y2%,X3%,Y3%,A%
	120 CALL COLOR(A%)
	130 CALL FBOX(X2%,Y2%,X3%,Y3%)
	140 INPUT "BOX",X2%,Y2%,X3%,Y3%,A%
	150 CALL COLOR(A%)
	160 CALL BOX(X2%,Y2%,X3%,Y3%)
	170 INPUT "LINE",X2%,Y2%,X3%,Y3%,A%:CALL COLOR(A%)
	180 CALL LINES(X2%,Y2%,X3%,Y3%)
	190 INPUT "pset",X1%,Y%
	200 CALL COLOR(A%):CALL PSET(X1%,Y1%)
	210 GOTO 10

______________________________________________________

	Tакже Вы можете воспользоваться этими графическими
функциями в БЕЙСИК-интерпретаторе.
        Для этого нужно сначала загрузить программу GRAF.COM, с
адреса 9000H по 9C80H будут располагаются графические функции.
	Затем загрузить программу BASIR.COM при этом графи-
ческие функции сохраняются.
 Разница при обращении к графическим функциям в том, что нужно
присвоить абсолютный адрес используемой функции INTEGER-пере-
менной. И затем ее использовать в операторе CALL
	Адреса функций следующие:
 - Выбор графических страниц
	SCREEN - 9000H
 - Заполнение просмотровой таблицы
	LUT - 9013H
 - Задание цвета
	COLOR - 965AH
 - Рисование точки
	PSET - 91D2H
 - Рисование прямоугольника
	BOX - 93CAH
 - Рисование заполненного прямоугольника
	FBOX - 9688H
 - Рисование линии
	LINES - 9204H
 - Рисование окружности
	CIRCLE - 9064H
 - Заполнение экрана заданным цветом
	PCLS - 97CAH
 - Запись в буфер ОЗУ прямоугольного образа ГЗУ
	GETOK - 9A08H
 - Вывод прямоугольного графического образа из буфера ОЗУ
   на экран
	PUTOK - 97FDH

	Пример программы с использование графических функций в
	БЕЙСИКЕ-интерпретаторе.

10 COLOR%=&H965A:FBOX%=&H9688:GETOK%=&H9A08:PUTOK%=&H97FD
20 A%=4:POLE%=&H8000:X1%=100:Y1%=40:X2%=200:Y2%=140
30 CALL COLOR%(A%)
40 CALL FBOX%(X1%,Y1%,X2%,Y2%)
50 CALL GETOK%(POLE%,X1%,Y1%,X2%,Y2%)
60 CALL PUTOK%(POLE%,X2%,Y2%)

	Данная библиотека функционирует с БЕЙСИКОМ состоящим
из следующих файлов:
	BASCOM.COM
	BASIR.COM
	LINK.COM
	BRUN.COM
	BASLIB.REL
	BCLOAD


		Компиляция программ на языке БЕЙСИК

      Компилятор языка БЕЙСИК вызывается следующей директивой:
 Формат:
 BASCOM [<объектный файл>][,[<файл списка>]]=<исходный файл>
        [<варианты>]
<объектный файл> - это имя файла, в который записывается пере-
мещаемый код. Он автоматически получает буквенную метку "REL".
<файл списка> - это имя файла, в котором записаны текст исход-
ной программы ф формате ASCII, и в соответствии с выбранными
вариантами, выработанные машинные команды в мнемоническом коде,
а также сообщения об ошибках. Этот файл позже может быть вы-
веден на дисплей или печатающее устройство. Если информация
должна выводиться только на дисплей или печатающее устройство,
на месте <файл списка> могут использоваться идентификаторы:
	LST: - для вывода на печатающее устройство;
	TTY: - для вывода на дисплей.
<исходный файл> - это имя файла, в который записывается исход-
ная программа в формате ASCII. Здесь автоматически присваива-
ется буквенная метка ".BAS".
	Могут быть использованы следующие варианты:
/C  Номера строк не имеют значения, за исключением оператора
    перехода
/Е  В БЕЙСИКЕ-программе содержатся операторы ON ERROR GOTO и
    RESUME <номер строки>. Компилятор формирует дополнительные
    коды, чтобы правильно обработать эти операторы.
/Х  В БЕЙСИК-программе содержатся один или несколько операторов
    RESUME, RESUME NEXT или RESUME 0. Этот вариант включает
    вариант  /Е.
/N  заблокирован вывод сформированных машинных кодов в мнемо-
    ническом представлении в файле списка.
/D  формирование дополнительного кода для обработки ошибок. За
    счет этого могут использоваться операторы TRON и TROFF, ко-
    торые в других случаях игнорирутся. При этом опознаются
    следующие ошибки:
	- арифметическое переполнение 
	- превышение границ индексов полей
	- ошибочные операторы RETURN
/S  строка констант, имеющая длину более 4-х знаков, записы-
    вается при компиляции в файл REL, однако не запоминается
    в рабочей памяти ( это имеет смысл только при выполнении
    больших программ)
Примеры:
	BASCOM TEST,B:LISTE=PROG
	Исходный текст программы PROG находится в файле с наз-
	ванием PROG на актуальном накопителе. Компилятор пере-
	дает включенную в список исходную программу в файл
	LISTE на накопителе B. Объектный код запоминается в
	файле TEST на актуальном накопителе.

	BASCOM TEST,LST:=TEST/C/E/D
	Исходный текст TEST.BAS переводится и объектный код за-
	писывается в файл TEST.REL. Файл списка выводится на
	печатающее устройство.


		Редактор связей языка БЕЙСИК

	После завершения работы компилятора, для дальнейшей
обработки скомпилированной программы необходимо запустить вспо-
могательную программу LINK, которая формирует программу в ма-
шинных кодах, непосредственно пригодную для выполнения (за-
грузочный модуль).
Формат:
 LINK [<допустимое название файла> [,<допустимое название фай-
	ла>]...[/<варианты>]]
Если вспомогательная программа вызывается без параметров, она
сообщает об этом с помощью звездочки и ждет ввода параметров.
<допустимое название файла> - это название файлов, принятые в
операционной системе СР/М. Вы называете файлы, в которых запи-
саны подлежащие загрузке перемещаемые объектные программы.
Здесь автоматически предусматривается буквенная метка ".REL".
Однако, если имя файла помечено с помощью поставленного сза-
ди /N , то речь идет о названии объектного файла, в который
записывается абсолютная объектная программа с буквенной меткой
".COM".
<варианты> указываются с помощью косой черты, стоящие перед
буквой.
/N  Это выражение, стоящее после названия файла, говорит о том
    что этот файл следует использовать в качестве объектного
    файла для абсолютной программы в машинных кодах.
/E  Объектный файл с буквенной меткой ".COM" записывается на
    внешнее ЗУ, и затем происходит передача управления опера-
    ционой системе. Перед этим все необходимые программы БЕЙ-
    СИК-компилятора автоматически считываются из файла 
    BASIC.REL и связываются с объектной программой.
/С  Как /Е , но программа сразу выполняется.
Примеры: LINK TEST,MROUT,FRCS/N/E
	Связываются программы TEST и MROUT. Абсолютная прог-
	рамма в машинных кодах заносится в файл с названием
	FRCG.COM.

	LINK PROG1/N,B:PROG2/Е
	Подлежащая связке программа находится в файле PROG2 на
	накопителе B: . Абсолютная программа в машинных кодах
	заносится в файл с названием PROG1.ютная прог-
	рамма в машинных кодах заносится в файл с названием
	FRCG.COM.

	LINK PROG1/N,B:PROG2/Е
	Подл