ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
4 мая
1204439 Топик полностью
Mahagam (30.04.2022 00:10, просмотров: 455) ответил m16 на не скромный вопрос от начинающего: не поделишься модулем коррекции псевдографики? в голове крутятся варианты, хотелось бы без грабель.
в смысле? нет никакого модуля. я входной fon файл (16 байт на пиксель * 256 символов = 4к ровно) конверчу скриптом в mem. он получается вида 
// Font size 8x16 @ 9-bit mode
@0000
000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
000 000 0FC 102 14A 102 102 17A 132 102 102 0FC 000 000 000 000
000 000 078 0FC 1FE 1B6 1FE 1B6 1CE 1FE 0FC 078 000 000 000 000
000 000 0CC 1FE 1FE 1FE 1FE 0FC 0FC 078 030 030 000 000 000 000
000 000 000 000 030 078 0FC 1FE 0FC 078 030 000 000 000 000 000
000 000 078 078 030 1FE 1FE 1B6 030 030 078 078 000 000 000 000
000 000 020 070 0F8 1FC 1FC 1FC 1FC 0A8 020 070 000 000 000 000
000 000 000 000 000 078 0FC 0FC 0FC 078 000 000 000 000 000 000
1FE 1FE 1FE 1FE 1FE 186 102 102 102 186 1FE 1FE 1FE 1FE 1FE 1FE
000 000 000 000 000 078 084 084 084 084 078 000 000 000 000 000
1FE 1FE 1FE 1FE 1FE 186 17A 17A 17A 17A 186 1FE 1FE 1FE 1FE 1FE
000 000 01E 006 00A 072 088 104 104 104 088 070 000 000 000 000
000 000 070 088 104 104 104 088 070 020 0F8 020 020 000 000 000

и далее. то есть превращается в 9 бит по ширине. как видишь, тут 0-ый бит нулевой (все значения чётные).


а по адресам символов псевдографики получается вот такое:

020 020 020 020 020 020 020 1FF 020 1FF 020 020 020 020 020 020
020 020 020 020 020 020 020 1E0 000 000 000 000 000 000 000 000
000 000 000 000 000 000 000 03F 020 020 020 020 020 020 020 020
1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF
000 000 000 000 000 000 000 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF 1FF
1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0 1E0
01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F 01F
1FF 1FF 1FF 1FF 1FF 1FF 1FF 000 000 000 000 000 000 000 000 000
000 000 000 000 000 000 1F0 198 198 198 1F0 180 180 180 000 000
000 000 000 000 000 000 0F0 198 180 180 198 0F0 000 000 000 000

как видишь, тут встречаются единички в 0-ом бите. это и есть неразрывность псевдографики.

а плисина просто все 9 бит выводит как есть. да, пришлось не просто делать счётчик пикселей по горизонтали, а отдельно счётчик символа, и счётчик от 0 до 8 по пикселю внутри символа.

ну и ещё весь "текстовый видеоадаптер" умеет даблить - то есть каждый пиксель размножать на два по горизонтали и два по вертикали.

получается вообще мне удобно. я хочу вывести текст 80*25 (как в старые добрые времена), это выходит (80*9 х 25*16) как 720х400. но если все пиксели продублировать, то выйдет 1440х800. а у меня как раз есть телевизор 1440х900. и спартан-6 сможет сделать HDMI (DVI) именно с таким разрешением. вообще лепота.


я этот "текстовый видеоадаптер" уже на нашем "вентиляторе" опробовал. программеры пошли писать API и делать OSD на основе его. жаль, на телефон такое тяжко снимать, оно мерцает.