ZXNet эхоконференция «code.zx»


тема: Печать текста.



от: Станислав Ломакин
кому: All
дата: 30 Mar 2006
Hello, mig'95

mig> Пожалуйста, подскажите, каким образом можно организовать печать
mig> текста на экране не по RST 16. Приводить здесь код не обязательно,
mig> достаточно лишь общее описание алгоритма.. Сам я что-то в
mig> затруднении.. :v2_conf2:

по координатам x,y вычислить адрес верхнего байта знакоместа, (*) взять код
символа, по коду символа и адресу фонта найти адрес первого из 8и байт графики
символа. взять байт символа, положить в экранный адрес, перейти к следующему
байту символа и адресу в экране на пиксел ниже, и так 8 раз. перейти к
экранному адресу для следущего символа, повторять все это, начиная с (*), до
тех пор, пока строка не закончится.

от: Kirill Frolov
кому: All
дата: 30 Mar 2006
Hello, boo_boo

Построчно будет быстрей. Т.е. вначале верхняя строка всей строки, потом вторая
и т.п.

от: Игорь Мамонов
кому: All
дата: 30 Mar 2006
Hello, boo_boo

boo> по коду символа и адресу фонта найти адрес первого из 8и байт графики
boo> символа.

Вот это совсем непонятно. Можно поподробнее? Hапример, если я использую
стандартный шрифт, размещающийся с адреса 15616 (тоже, кстати, непонятно - ведь
для запуска TR-DOS мы обращаемся из Бейсика по этому адресу, а там - шрифт) и
мне нужно вывести на печать символ, например "H" (код 72) .

от: Stanislav Yudin
кому: All
дата: 30 Mar 2006
Hello, mig'95

mig> Hапример, если я использую стандартный шрифт, размещающийся с адреса
mig> 15616 (тоже, кстати, непонятно - ведь для запуска TR-DOS мы
mig> обращаемся из Бейсика по этому адресу, а там - шрифт) и мне нужно
mig> вывести на печать символ, например "H" (код 72) .

Каждый символ в ПЗУ занимает 8 байт. Шрифт начинается с символа пробела. Его
код - 32. Значит реальное начало шрифта, то есть символа с кодом 0, находится
по адресу 15616-32*8. Чтобы получить адрес буквы "H" в шрифте очевидно нужно
сделать так: (15616-32*8)+(72*8). Следующие за этим адресом 8 байт и будут
составляющие символа H.

Что же касается TR-DOS, то контроллер Beta Disk устроен так, что при попытке
перехода на определённую область адресов ПЗУ, в которую как раз и входит
упомянутый адрес 15616, включается ПЗУ TR-DOS, которое заменяет собой
стандартное ПЗУ с Бейсиком. А в ПЗУ TR-DOS по этим адресам находтся уже не
шрифт, а код программы работы с дисководом.

от: Wladimir Bulchukey
кому: All
дата: 30 Mar 2006
Hello, CityAceE

Общий принцип такой:
Физический адрес видеопамяти:
Адрес=16384+2048*I+32*J+256*K+X,
где:
I=0...2 - номер трети экрана (сверху вниз);
J=0...7 - номер строки символов в трети (сверху вниз);
K=0...7 - номе линии (байта) в символе (сверху вниз);
X=0...31 - номер знакоместа в строке (слева направо).




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

Похожие статьи:
Трибуна - Pidarsoft: реакция.
Новости - DOOM oт Digital Reality. Вышел ZX-Format 4.5
CHAOS ZONE'99 - О демке CHAOS ZONE'99.

В этот день...   25 августа