[an error occurred while processing this directive]

─PE
|||/Функции VDU/|||

 Оператор VDU X эквивалентен оператору  PRINT  CHR¤(X); а оператор
VDU X,Y,Z эквивалентен строке PRINT CHR¤(X); CHR¤(X); CHR¤(Z);.

 Однако оператор VDU имеет более  универсальное  применение, когда
дело  касается  вывод  управляющих  символов.  Каждый  управляющий
символ   имеет  однозначное  действие,  описанное  в  этой  главе.
Управляющие  символы  обрабатываются  подпрограммой  ОС, именуемой
"Драйвер VDU".

 Если Вы собираетесь использовать в своих программах разннобразные
графические  функции  ОС,  не  имеющие   эквивалентных  операторов
Бейсика  (например  установка  границ  текстового  и  графичсекого
окон), Вы должны обязательно изучить эту главу.

 Драйвер  VDU  является  частью  ОС.  Все  языки  высокого  уровня
(включая Бейсик) используют его для печати символов и рисования на
экране.  Таким  образом Вам не  надо  создавать  свои  собственные
подпрограммы вывода информации на экран.

 Драйвер VDU обрабатывает все 32  управляющих  символа.  Некоторые
управлющие  символы  должны  сопровождаться  одним или несколькими
байтами.  Количество сопровождающих байт зависит  от  управляющего
символа. В  следующей  таблице  представлены  управляющие символы,
количество сопровождающих байт и назначение символа:
─PE
│....*.....*.....*.....*.....*..*...................................<
	----------------------------------------------------------------
	  	  	 	   .
	  	  .	 	   в
	  	  н	 	  е
	 .	  т	 	  р	  т
	 с	 с	Р	б	й
	 е	 е	П	б	а
	 Д	 Ш	У	А	Б	Назначение
	----------------------------------------------------------------
	 0	 0	 	NUL	0	нет
	 1	 1	A	SOH	1	послать следующий символ на принтер
	 2	 2	B	STX	0	разрешение вывода на принтер
	 3	 3	C	ETX	0	отмена вывода на принтер
	 4	 4	D	EOT	0	далее выводить текст на месте          
	 					текстового курсора
	 5	 5	E	ENQ	0	далее выводить текст на месте
	 					графического курсора
	 6	 6	F	ACK	0	разрешение использования драйвера VDU
	 7	 7	G	BEL	0	звуковой сигнал
	 8	 8	H	 BS	0	курсор на один шаг влево
	 9	 9	I	 HT	0	курсор на один шаг вправо
	10	 A	J	 LF	0	курсор на одну строку вниз
	11	 B	K	 VT	0	курсор на одну строку вверх
	12	 C	L	 FF	0	очистка текстового окна
	13	 D	M	 CR	0	курсор в начало текущей строки
	14	 E	N	 SO	0	выбор постраничного режима
	15	 F	O	 SI	0	отмена постраничного режима
	16	10	P	DLE	0	очистка графического окна
	17	11	Q	DC1	1	задание цвета текста
	18	12	R	DC2	2	задание цвета графики
	19	13	S	DC3	5	задание логических цветов
	20	14	T	DC4	0	восстановление логических цветов
	21	15	U	NAK	0	запрещение использование драйвера VDU
	22	16	V	SYN	1	выбор режима отображения
	23	17	W	ETB	9	перепрограммирование матрицы символа
	24	18	X	CAN	8	определение графического окна
	25	19	Y	 EM	5	PLOT K,x,y
	26	1A	Z	SUB	0	восстановление стандартных окон
	27	1B	[	ESC	0	нет
	28	1C	\	 FS	4	определение текстового окна
	29	1D	]	 GS	4	установка начала координат графики
	30	1E	^	 RS	0	курсор в верхний левый угол
	31	1F	_	 US	2	переместить курсор в x,y
 127	7F		DEL	0	курсор назад со стиранием.
 
  ----------------------------------------------------------------
─PE
─HT1 129
─HT2 128
/Описание кодов VDU./

/0/   Этот код игнорируется.
│..     >.*.......*.......*.......*.......*.......*.......*..........<
/1/Следующий за этим символ посылается только на принтер. Принтер   
уже должен быть "разрешен" /VDU2/.  Многие  принтеры  используют 
специальные  управляющие  символы  например,  для смены ширины
символов.  Например,  Epson  MX-80  использует   код   14  для
установки режима печати символов двойной ширины. Этого эффекта
можно достичь оператором /VDU1,14/

/2/ Этот код "включает принтер", т.е.  после  него  весь  вывод на
экран  будет  параллельно  направлятся  на  принтер. В Бейсике
можно использовать оператор /VDU2/.

/3/Этот код "выключает принтер", т.е.  после  оператора /VDU3/ весь
вывод будет идти только на экран.

/4/После этого кода символы на  экране  будут  выводится на месте
расположения  текстового  курсора. При выборе экранного режима
устанавливается /VDU4/.

/5/После этого кода символы на  экране  будут  выводится на месте
расположения  графического курсора. Позиция текстового курсора
при этом  не  изменяется.  Обычно текстовый курсор управляется
операторами  типа  /PRINT  TAB(5,10);/  а   графический   курсор
управляется операторами типа /MOVE700,450/

/6//VDU6/ противоположен коду /VDU21/. /VDU21/ отключает вывод на экран
а /VDU6/ снова разрешает его.  Типичным  примером  использования
/VDU21/ является  запрет  вывода пароля на экран при его вводе с
клавиатуры.

/7/Этот  код,  который может быть  выведен  оператором  /VDU7/  или
введен  с клавиатуры  как  /УПР+G/,  вызывает  подачу  звукового
сигнала.

/8/Этот код перемещает текстовый курсор на одно знакоместо влево.
Если курсор находится в начале строки, он перемещается в конец
предыдущей.

/9/Этот код перемещает текстовый курсор на одно знакоместо влево.

/10/Этот код перемещает текстовый курсор на одну строку вниз. Если
курсор  находится  на  нижней  строке,   все   текстовое  окно
смещается вверх на одну строку.

/11/Этот код перемещает текстовый курсор  на  одну  строку  вверх.
Если  курсор  находится  на верхней строке, все текстовое окно
смещается вниз.

/12/Этот код очищает экран или  по  крайней  мере  текстовое окно.
Экран   очищается  цветом  текстового  фона.,  который  обычно
черный.  Оператор Бейсика /CLS/ имеет действие аналогичное /VDU12/
или /УПР+L/.  Кром  того, этот код перемещает текстовый курсор в
левый верхний угол текстового окна.

/13/Этот  код генерируется клавишей "ВВОД".  Однако  на  экран  он
может быть  послан  /VDU13/  или  /PRINT CHR¤(13);/ что приводит к
перемещению текстового курсора в начало следующей строки.

/14/Этот код заставляет компьютер ожидать  нажатия  любой  клавиши
после  "прокрутки"  очередной  экранной  страницы. Обычно этот
режим  используется  при  просмотре листингов  программ.  Этот
режим  называется  "страничный".  С   клавиатуры   его   можно
установить  нажав /УПР+J/ и  /N/.  Выключение  страничного  режима
производится нажатием /УПР+J+O/.

/15/Этот код отменяет страничный режим.

/16/Этот  код  очищает  графическое  окно,   заполняя  его  цветом
графического  фона.  Оператор  Бейсика CLG  имеет  аналогичный
эффект. /VDU16/ не изменяет положения графического курсора.

/17/Используется для смены основного  и фонового текстовых цветов.
В  Бейсике для этой цели  служит  оператор  /COLOUR/.  За  /VDU17/
следует байт,  семь  младших  битов которого задают цвет. Если
старший бит равен 0, задается основной цвет, если 1 - фоновый.

/18/Этот код позволяет определять основной  и  фоновый графические
цвета. Он также позволяет определять способ нанесения цвета на
экран.   Цвет   может   класться  непосредственно,  или  путем
выполнения  операций  /AND, OR /или /EOR /с уже имеющимся цветом в
данной точке экрана.  Кроме  того,  есть  режим инвертирования
имеющегося  на  экране  цвета.  В  Бейсике  можно использовать
оператор /GCOL/.
Первый байт задает способ нанесения цвета:

0   Непосредственно
1   /OR/
2   /AND/
3   /EOR/
4   Инвертирование

Второй  байт  задает  основной  и  фоновый  графические  цвета
аналогично /VDU17/.

/19/По техническим причинам этот код на ПЭВМ АГАТ не используется.

/20/По техническим причинам этот код на ПЭВМ АГАТ не используется.

/21/"Отключает" вывод на экран.

/22/Этот  код  используется  для  смены  экранного  режима. За ним
должен следовать номер нового режима. Так /VDU22,7/ эквивалентно
/MODE 7/.

/23/Этот  код  используется  для  переопределения  формы символов,
выводимых на экран в графических режимах (0,1,2,3,4). За кодом
следует ASCII код переопределяемого символа и 8 байт, задающих
новую форму символа. Так как матрица символа имеет размерность
6x8, младшие два бита в каждом байте должны быть равны нулю.

/24/Этот  код  устанавливает  границы графыческого окна - области,
внутри  которой  можно  рисовать   операторами  /DRAW/  и  /PLOT/.
Графический  экран по умолчанию  имеет  высоту  1024  условных
единицы и  ширину  1280.  При  определении  графического  окна
должно  быть задано четыре координаты: левая, нижняя, правая и
верхняя границы области в формате:
/VDU24,LSBл,MSBл,LSBн,MSBн,LSBп,MSBп,LSBв,MSBв/


[an error occurred while processing this directive]