Печать текста. — ZXNet «code.zx»

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

ZXNet echo conference «code.zx»



from: Станислав Ломакин
to: All
date: 30 March 2006
Hello, mig'95 mig> Пожалуйста, подскажите, каким образом можно организовать печать mig> текста на экране не по RST 16. Приводить здесь код не обязательно, mig> достаточно лишь общее описание алгоритма.. Сам я что-то в mig> затруднении.. :v2_conf2: по координатам x,y вычислить адрес верхнего байта знакоместа, (*) взять код символа, по коду символа и адресу фонта найти адрес первого из 8и байт графики символа. взять байт символа, положить в экранный адрес, перейти к следующему байту символа и адресу в экране на пиксел ниже, и так 8 раз. перейти к экранному адресу для следущего символа, повторять все это, начиная с (*), до тех пор, пока строка не закончится.

from: Kirill Frolov
to: All
date: 30 March 2006
Hello, boo_boo Построчно будет быстрей. Т.е. вначале верхняя строка всей строки, потом вторая и т.п.

from: Игорь Мамонов
to: All
date: 30 March 2006
Hello, boo_boo boo> по коду символа и адресу фонта найти адрес первого из 8и байт графики boo> символа. Вот это совсем непонятно. Можно поподробнее? Hапример, если я использую стандартный шрифт, размещающийся с адреса 15616 (тоже, кстати, непонятно - ведь для запуска TR-DOS мы обращаемся из Бейсика по этому адресу, а там - шрифт) и мне нужно вывести на печать символ, например "H" (код 72) .

from: Stanislav Yudin
to: All
date: 30 March 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 по этим адресам находтся уже не шрифт, а код программы работы с дисководом.

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