146_______________________________________________

символа POINT$ будем использовать два символа с кодом 219, а в качестве элемента фона EMPTY$ — два символа с кодом 32. В качестве кодовой страницы будет служить двумерный массив SMBLS. Для представления цифр минут и секунд введен массив DIGITS. С учетом этих изменений введите текст основной программы (строки старой программы приведены без комментариев):

'данные для изображения цифр 0,1, 2, 3,4, 5, 6, 7, 8, 9

DATA SH003E, SH6363, SH6363, SH633E, SB0018, SH3818 SH1818, SH187E DATA SH003E, SH6303, SHOE18, SH337F, SH003E, SH6303 SH1E03, SH633E DATA SHOOOE, SH1E36, SH667F, &H060F, SH007F, SH6060 SH7E03, SH633E DATA SH001-C, SH3060, SH7E63, SH633E, SH007F, SH6306 SHOC18, SH1818 DATA SH003E, SH6363, SH3E63, SH633E, SH003E, SH6363 SH3F03, SH063C CLS

DIM SMBLS(0 TO 9, 1 TO 4) AS INTEGER "кодовая страница" цифр DIM DIGITS (1 ТО 4) AS INTEGER массив для вывода цифр POINT$ « STRING$(2, CHR$(219» строковая константа "точка" ЕМРТУ$ »= " " строковая константа "пусто" FOR 1% == О ТО 9 начало цикла по цифрам

FOR J% ° I TO 4 начало цикла по словам READ K% чтение данных SMBLS(1%, J%) = K% запись в "кодовую страницу"

NEXT Jt конец цикла по словам NEXT 1% конец цикла по цифрам

м» = о

S» » О DO

GOSOB SHOWT

IF М% > 1 THEN EXIT DO LOOP END

А теперь перейдем к изменениям в подпрограмме. Эти изменения связаны с моделированием осуществляемой адаптером дисплея аппаратной обработки информации из кодовой страницы. В связи с этим разделенные цифры сначала записываются в массив, а затем по их значениям из байтов "кодовой страницы" построчно формируются и выводятся их изображения. Этому циклу из 7 строк по счетчику IT% предшествует установка зеленого цвета выводимых символов. В цикле сначала присваивается "пустое" значение строковой переменной х$, в которой затем формируется выводимое псевдографическое изображение строки. Затем следует цикл формирования этого изображения из 4 цифр по счетчику кт%. Для этого из массива SMBLS извлекается байт, соответствующий изображаемой цифре и номеру строки. Затем в цикле из 8 битов по счетчику JT% в соответствии с содержимым байта символьная переменная дополняется константами POINT$ или ЕМРТУ$. Между 2 и 3 цифрами вводится дополнительный промежуток. Сформированная строка выводится на свое место на экране. Затем для 2 и 6 строк выводится мигающая "точка".

SHOWT:

DIGITS(1) = М% \ 10 'первая цифра DIGITS(2) = М% MOD 10 'вторая цифра DIGITS(3) = S% \ 10 'третья цифра DIGITS(4) = S% MOD 10 'четвертая цифра COLOR 2 'зеленый цвет "точек" FOR IT% = 1 ТО 7 'начало цикла по строкам