Article View: pl.comp.os.linux.programowanie
Article #60494Zmiana szerokości znaków czcionki konsolowej (VGA)
From: Adam Wysocki
Date: Thu, 17 Nov 2005 02:29
Date: Thu, 17 Nov 2005 02:29
40 lines
2800 bytes
2800 bytes
Cześć,
Przyznam, że jesteście moją praktycznie ostatnią (poza framebufferem, ale
nie chcę go dotykać) deską ratunku. Problem wygląda na prosty, ale mi spędza
już któryś z kolei sen z powiek i maksymalnie irytuje, bo nie lubię, jak
maszyny próbują być mądrzejsze od programisty :(
A problem jest taki - chcę wyświetlić graficzne logo w trybie tekstowym
karty VGA. Wydaje się proste - tworzę czcionkę, wrzucam do karty, wypisuję
znaki i tyle. Mimo tego po wielu godzinach, spędzonych z ioctlem PIO_FONTX,
czytaniem manuali, źródeł jądra (drivers/char/vt.c, drivers/char/vt_ioctl.c,
drivers/video/console/vgacon.c), książek ("Programowanie kart graficznych"
Łabanowskiego) i mrocznym programowaniem, włączając w to desperackie,
bezpośrednie programowanie karty graficznej (outb i mapowanie pamięci
w userspace) doszedłem do zaskakująco prostego odkrycia: Czcionki ekranowe
mają szerokość 9 (a nie jak zakładałem 8) znaków. I stąd krwawe, pionowe
linie, psujące moje śliczne logo.
Teraz pytanie:
a) jak zmienić szerokość znaku na 8?
lub
b) jak ustawić ten nieszczęsny 9 bit w (jakby nie było jednobajtowym)
kodzie linii znaku? Wiem że się da, bo w eksperymentach doszedłem do
sytuacji, w której niektóre znaki miały ten bit ustawiony (ale niestety
nie pamiętam jak). Jeśli ktoś nie wie (lub wie, że się nie da) ioctlami
ani innymi eleganckimi sposobami, to może być też bezczelne rozmawianie
bezpośrednio z kartą graficzną.
Rozwiązanie a) bardziej by mnie satysfakcjonowało, ale równie dobrze
może być b).
Pozdrawiam.
--
Adam Wysocki :: www.gophi.rotfl.pl :: GG: 1234 :: Fidonet: 2:480/138
Gdyby szafka miala sznurek to by była windą. (C) PaulKing 12.02.2004
W prezencie dla spamerów: jibwskcufzi@shbms.bn gdisrwmrwmu@uadgbj.ng
Technical Details
Message-ID:
<gophi.pcolp.1132194575@news.chmurka.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.chmurka.net!spamtrap.chmurka.net!gophiShow Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.chmurka.net!spamtrap.chmurka.net!gophi
From: gophi.at.chmurka.net@nospam.invalid (Adam Wysocki)
Newsgroups: pl.comp.os.linux.programowanie
Subject: Zmiana szerokości znaków czcionki konsolowej
(VGA)
Date: Thu, 17 Nov 2005 02:29:35 +0000 (UTC)
Organization: ...far away, on the other side... (2:480/138)
Lines: 40
Message-ID: <gophi.pcolp.1132194575@news.chmurka.net>
NNTP-Posting-Host: deszczyk.chmurka.net
Mime-Version: 1.0
X-Complaints-To: usenet#chmurka.net
NNTP-Posting-Date: Thu, 17 Nov 2005 02:29:35 +0000 (UTC)
X-Surf-To: news://news.chmurka.net/chmurka.miauk
X-Accept-Language: pl, en-us, en
X-User-Uptime: 653668792 seconds
X-No: Yes
X-Yes: No
User-Agent: tin/1.7.10-20050929 ("Tahay") (UNIX) (Linux/2.6.14-rc3-avenger (i586))
X-Confused: Maybe
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit