132_______________________________________________

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

Символы строк произвольной длины кодируются точно таким же образом, но размещены в ОЗУ иначе. Попытки таким же образом извлечь из ОЗУ коды символов строк произвольной длины оказались безуспешными. Как удалось установить методом проб и ошибок по указанному адресу хранятся код длины (2 байта) и указатель на байт первого символа строки (2 байта). То есть в ячейках памяти, определяемых функциями VARSEG и VARPTR, хранится информация о длине строки и адресе начала строки. Покажем это на простом примере:

DEFLNG А 'определение типа длинного целого DEFINT В 'определение типа целого message$="Hello everybody!" 'присвоение значения

переменной PRINT message$ 'вывод на экран исходного

значения переменной Aseg = VARSEG(message$) 'определение кода сегмента Aoff = VARPTR(message$) 'определение кода смещения DEF SEG = Aseg 'задание сегмента для чтения из ОЗУ Blen = PEEK(Aoff) 'чтение младшего байта длины AoffNEW = 256*PEEK(Aoff +, 3) + PEEK(Aoff + 2)

'чтение и вычисление адреса

FOR Bi=0 TO Blen-1 'цикл чтения и вывода символов PRINT CHR$(PEEK(AoffNEW+Bi)) ;

'чтение кода символа из ОЗУ и вывод символа NEXT Bi

PRINT

Правильность нашего понимания подтверждается совпадением содержания двух строк, выведенных программой на экран.

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

4.4. КОДИРОВАНИЕ ДАННЫХ В ДИСПЛЕЕ И КЛАВИАТУРЕ

Для нас пока важно было в общих чертах получить понятия о кодировании данных различных типов в системе ОЗУ-ЦП. А каким образом кодируются данные во внешних относительно ОЗУ-ЦП устройствах? Начнем с частично нам знакомого кодирования данных, выводимых через дисплей в текстовом режиме. В практикуме по редактору мы уже ознакомились с понятием кодовой страницы. А предыдущее занятие показало нам, что в дисплее может кодироваться не только начертание символов, но и цвета символа и фона и даже мигание символа. Начертание символа определя-