---
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