A colorForth forrás meglehetősen különbözik az ismert ASCII-től. Az ASCII szöveg egy 8 bites karakterlánc. A colorForth változó hosszúságú, 32 bites szavakba rendezett karaktereket használ, mindegyik 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 a szöveget 32 bites szavakká alakítják. Mindegyik 28 bit karakterből és egy 4 bites tag-ból áll az alacsony rendű bitekben. A 0-as értékű címke az előző szó kiterjesztése, folytatása. A karakterek 4, 5 vagy 7 bitet foglalnak el, a használat gyakoriságától függően. Ezek az előre elemzett szavak gyors fordítást tesznek lehetővé, az egyetlen költség a szótárkeresés.
A GreenArrays chipen a faktorálás kettő 18 bites szóra vonatkozik, 4 bites címkével.
A változó hosszúságú karaktereket eredetileg Huffman-kódolásúnak hívtam. Azt tanácsolták, hívjam őket Shannon-kódolásúnak. Ezek a kódolások algoritmusokkal rendelkeznek az optimális frekvenciaeloszlás meghatározására a szövegminta alapján. Nem teszem ezt, így egyik kifejezés sem pontos. Egyszerűen az angol betűk gyakoriságát használom, az igényeknek megfelelően.
Az az alkalmazás, amelyhez a colorForth-ot használom, OKAD (Ok Aided Design) néven fut. Tervezőeszközökből áll a VLSI elrendezéséhez/szimulációjához. Az Ok a klasszikus Forth-ból származik, ahol minden parancssort ezzel nyugtáznak. Az OKAD forráskódja 1440 blokkot foglal el, ez a mennyiség hajlékonylemezen tárolható. Ez a legnagyobb kódtörzs, amit valaha írtam, és körülbelül 8 évig tartott a fejlesztése.
Ez a szöveg jelentősen tömöríthető, ha 32 bites szavakból konvertálunk bit folyammá. Vagyis a 4 bites címkék és a változó hosszúságú karakterek folyamatos bitsorozatként összefűzve. A szavak 0-val vannak elválasztva 4 bites nullával. Ahogy a blokkok is. Ez nemcsak tömöríti a forrást, hanem megkönnyíti az átmenetet a 32 bites szavakról a 36 bitesekre. Az eredeti 1440 blokkból 300 blokk lesz; vagyis 300 KB. A floppy olvasása és írása négyszer gyorsabbá válik.
Ebben a formátumban minden szó a címkével kezdődik, így megfelelően értelmezhető. Például a szavak 0 végűek; a számok 32 bitesek; változók mindkettő. A szöveg tömörítéséhez 2 blokk colorForth kód szükséges; további 2 blokk a kibontáshoz. Több, mint vártam, de könnyen megfizethető.
Az így kapott bit folyam nem csak tömörítve, hanem titkosítva is van. Egy alkalmi nézőnek semmi értelme nincs. E leírás és a megfelelő szoftver nélkül ez nem érthető. A bitsorozat dumpjának megtekintése rendkívül zavaros. Hamarosan készítek néhány példát a tömörítettlen és a tömörített kódról.
Egy optimalizálás marad: minden szám 32 bites. 5 bites szám és változó hosszúságú szám javítaná a tömörítést. Valamikor hozzáfogok.