You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.6 KiB
Markdown

Oktatóanyag 0A - PC Screen Font
===============================
Képeket kirakni poénos, de mindenképpen szükség van többre, karakterek megjelenítésére is. Alapvetően
a fontok nem mások, mint képek minden karakterhez (glyphek). Ehhez az oktatóanyaghoz azt a PC Screen Font
formátumot választottam, amit a Linux Console csomag is használ.
Lfb.h, lfb.c
------------
`lfb_init()` beállítja a felbontást, mélységet, színcsatornákat és visszaadja a framebuffer címét.
`lfb_print(x,y,s)` megjelenít egy szöveget a képernyőn.
Font.psf
--------
A font fájl. Bármelyik használható a /usr/share/kbd/consolefonts mappából. Unicode táblákat nem támogatja.
A karakterek glypehnek való megfeleltetése ezen táblázat által (a meglévő egy-az-egyhez megfeleltetés helyett)
házi feladat, Rád van bízva. Ezt a fontot az eredeti IBM PC VGA ROM-jában található 8x16 fontkészletből generáltam,
és 127 glyphet tartalmaz.
Makefile
--------
Egy új object-et adtam hozzá, ami a psf-ből generálódik. Jó példa arra, hogyan kell bináris fájlt behúzni és
hivatkozni C forrásból. A következő parancsot használtam a cimke nevének kiderítésére:
```sh
$ aarch64-elf-readelf -s font.o
... kimenet törölve az átláthatóság miatt ...
2: 0000000000000820 0 NOTYPE GLOBAL DEFAULT 1 _binary_font_psf_end
3: 0000000000000000 0 NOTYPE GLOBAL DEFAULT 1 _binary_font_psf_start
4: 0000000000000820 0 NOTYPE GLOBAL DEFAULT ABS _binary_font_psf_size
```
Main
----
Nagyon egyszerű. Beállítjuk a felbontást és megjelenítjük a szöveget.