--- description: A colorForth karakter kezelése szerző: zgroska@gmail.com verzió: 0v1 - 2022.01.10 állapot: a szerkesztése folyamatban tags: colorForth, leírás, hu --- # A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> karakterek és bináris ábrázolásuk technikai leírása ## Karakter kódok ``` 0 000 0 10 000 s 8 0 001 r 1 10 001 m 9 0 010 t 2 10 010 c 10 0 011 o 3 10 011 y 11 0 100 e 4 10 100 l 12 0 101 a 5 10 101 g 13 0 110 n 6 10 110 f 14 0 111 i 7 10 111 w 15 1100 000 d 16 1101 000 k 24 1110 000 8 32 1111 000 ; 40 1100 001 v 17 1101 001 z 25 1110 001 9 33 1111 001 : 41 1100 010 p 18 1101 010 j 26 1110 010 1 34 1111 010 ! 42 1100 011 b 19 1101 011 3 27 1110 011 - 35 1111 011 + 43 1100 100 h 20 1101 100 4 28 1110 100 0 36 1111 100 @ 44 1100 101 x 21 1101 101 5 29 1110 101 . 37 1111 101 * 45 1100 110 u 22 1101 110 6 30 1110 110 2 38 1111 110 , 46 1100 111 q 23 1101 111 7 31 1110 111 / 39 1111 111 ? 47 ``` [A colorForth forráskód tömörítése](https://hackmd.io/@zgroska/cF_compress) A táblázatban a karakterek az angol nyelvű szöveghasználat gyakorisága szerint vannak elrendezve. > A szóköz és a leggyakoribb 7 db karakter kódolása 4 bitet használ, a következő 8 db karakter 5 bitet és a maradék 32 db 7 bitet. Ez karakterenként átlag 5,2 bit. > Minden nyolcas csoporton belül a karakter bináris értékének nővekedésével csökken az adott karakter gyakorisága. > A számok és a különleges karakterek rendezetlenek. Legfeljebb 5 záró nullát lehet hozzáadni egy szó utolsó (jobb szélső) karakteréhez. A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> forráskódja meglehetősen különbözik az ismert ASCII-től. Az ASCII szöveg egy 8 bites karakterlánc. A <a style='color:#ff0000'>color</a><a style='color:#009900'>Forth</a> változó hosszúságú, 32 bites szavakba tömöritett karaktereket használ és mindegyik 32 bites szóhoz tartozik egy 4 bites címke. A szöveg tovább szerveződik 1024 bájtos blokkokba. Minden blokk a kapcsolódó Forth szavak halmazát tárolja, és olyan funkciót lát el, mint egy bekezdés. A Pentiumon 32 bites szavak tartalmazzák a szöveget. A 32 bites szavak [bájtsorrendje (endianness)](https://hu.wikipedia.org/wiki/B%C3%A1jtsorrend): **Little-endian**. Minden 32 bites szóban 28 bit szolgál a karakterek tárolására és 4 bit a szó cimkéjére (tag). A címke a 32 bites szó alsó 4 bitjét foglalja el, a karakterek a legmagasabb helyiértéknél kezdődnek változó bithosszúsággal. {%hackmd @zgroska/bájtsorrend %} A címke 0-ás értéke az előző 32 bites szó folytatását jelenti. A karakterek 4, 5 vagy 7 bitet foglalnak el, a használat gyakoriságától függően. Ezek az [előre elemzett](https://hackmd.io/@zgroska/cF_karakterek) szavak gyors fordítást tesznek lehetővé, az egyetlen költség a szótárkeresés. ### Példa: ... ### A karakterkódolás kapcsolata az Ikonokkal Minden karakterhez tartozik egy 6 bites index egy grafikus táblázatban. 48 + 26 + 12 bejegyzés található nagybetűvel. Ezeket a 16x24 bites térképek egy „ikon” nevű segédprogrammal szerkeszthetők. ## RGB 16 bites színek ``` 0x0000 background /a háttér színe 0xFFE0 yellow (sárga) 0x0000 black (fekete) 0xF800 red (piros) 0x0600 green (zöld) 0x07FF cyan (ciánkék) 0xFFFF white (fehér) 0x841F light_blue (világoskék) 0xC618 silver (ezüst) 0xF81F magenta 0xF81F magentaDatax 0x001F blue (kék) 0xE200 orange (narancs) 0xFFE0 dark_yellow (sötétsárga) 0x07C0 dark_green (sötétzöld) 0xE200 PacMan /a kurzor színe 0xE200 blockNumber /a jobb felső sarokban található aktuális blokk számának a színe ``` ### u16 kód szín ``` 0x0000 Fekete 0xFFFF fehér 0xBDF7 Világos szürke 0x7BEF Sötét szürke 0xF800 Piros 0xFFE0 Sárga 0xFBE0 narancs 0x79E0 Barna 0x7E0 Zöld 0x7FF Ciánkék 0x1F Kék 0xF81F Rózsaszín ``` [Monokróm és RGB színformátumok listája](https://en.wikipedia.org/wiki/List_of_monochrome_and_RGB_color_formats#4-bit_RGBI) 16 bites színmeghatározások ``` 0x0000 FEKETE 0x001F KÉK 0xF800 VÖRÖS 0x07E0 ZÖLD 0x07FF CIÁNKÉK 0xF81F BÍBORVÖRÖS 0xFFE0 SÁRGA 0xFFFF FEHÉR ``` https://zgroska.nimbusweb.me/s/share/6481273/cpm757e2ivdw48mwh9sv https://vecta.io/app/edit/-Mt95ywSmPD7BQVl7fcH https://engine.presearch.org/search?q=svg+editor&rid=1654977