THESE PAGES ARE FREE OF

JAVA
FRAMES

STORED ON A LINUX SERVER, AND RUNNING SPACEHAWKS' OWN LINUX BASED VOTING AND MESSAGE BOARD CGI.

NO MICROSOFT RELATED PROGRAMS WERE USED TO CREATE THIS SITE.

VOYAGER
IBROWSE
AWEB
 
MSIE
 

WORLDNEWS ISSUE 19
16777216 szín HAM8 módban

Egy (amúgy elég cool) kerdőív során felmerült a kérdés, hogy pontosan mennyi színt is lehet kirakni HAM8-ban a képernyőre.

Elvi kérdésről lévén szó, nem foglalkozunk a képméretből származó, illetve ahhoz kapcsolódó korlátokkal, mint:

- az AGA által megengedett maximális képméret,
- a CHIP RAM mennyiség vagy
- a mai monitorok által megjeleníthető kép maximális mérete.

(Már csak azért sem kell foglalkoznunk vele, mert a BPL1MOD és a BPL2MOD word méretû, valamint az így létrehozott vízszintesen is iszonyú méretû autoscroll képernyõ függõleges méretének valóban csak a chipram mérete szab határt - így egy rengeteg chiprammal rendelkezõ gépen elvileg minden további nélkül megvalósítható a dolog. Boxeren tehát nem kizárható, hogy még láthatnánk is.-Emeric SH)

Mivel a képmérettel nem fogalkozunk, elég ha leírom hogy kell egy tetszőleges színű 24 bites pixelt előállítani.

A dologhoz nem kell más, mint a 64 színű paletta megfelelő beállítása, amellyel a HAM8-ban mindenféle "trükk" nélkül előállítható 64x64x64, azaz 262144 szint "finomszabályozzuk".

Ez paletta lehet a következő:

színregiszter r g b
0:   $000000
1:   $000001
2:   $000002
3:   $000003
4:   $000100
5:   $000101
6:   $000102
7:   $000103
8:   $000200
9:   $000201
10:   $000202
11:   $000203
12:   $000300
13:   $000301
14:   $000302
15:   $000303
   
16:   $010000
17:   $010001
18:   $010002
19:   $010003
20:   $010100
21:   $010101
22:   $010102
23:   $010103
24:   $010200
25:   $010201
26:   $010202
27:   $010203
28:   $010300
29:   $010301
30:   $010302
31:   $010303
   
32:   $020000
33:   $020001
34:   $020002
35:   $020003
36:   $020100
37:   $020101
38:   $020102
39:   $020103
40:   $020200
41:   $020201
42:   $020202
43:   $020203
44:   $020300
45:   $020301
46:   $020302
47:   $020303
   
48:   $030000
49:   $030001
50:   $030002
51:   $030003
52:   $030100
53:   $030101
54:   $030102
55:   $030103
56:   $030200
57:   $030201
58:   $030202
59:   $030203
60:   $030300
61:   $030301
62:   $030302
63:   $030303

Tehát minden szín eléggé sötét, de a felső 6 bit teljesen lényegtelen céljaink elérése érdekében, mivel később amúgy is átállítjuk azt. A kívánt 24 bites szín előhozásához ezzel, vagy ehhez hasonló palettával 4 pixel kell:

lépés   aktuális színbitek   grafikus memóriába kerülő
    vörös zöld kék   8 bites érték
0   ???????? ???????? ????????   -
1   000000RR 000000GG 000000BB   RRGGBB00
2   rrrrrrRR 000000GG 000000BB   rrrrrr10
3   rrrrrrRR ggggggGG 000000BB   gggggg11
4   rrrrrrRR ggggggGG bbbbbbBB   bbbbbb01

A táblázatban minden bitet egy karakter jelöl, a kivánt truecolor színt a bináris rrrrrrRRggggggGGbbbbbbBB érték írja le. Persze pl. a különböző helyiértéken szereplő azonos betűk nem cserelhetők fel. Az alsó helyiértékeket csak azért írtam nagybetűvel, hogy egyértelmű (...) legyen a fenti tábálzat.

A 0. lépés a mindenféle állítgatás előtti állapotot jelöli.

1. pixel: a fenti palettából egy szín, amelynek alsó 2 bitje mind az r, g, b komponensből megfelel a kívánt pixelének. A táblázat szín oszlopában a 0-k lényegtelenek, úgyis átállítódnak később, és bármi állhatna a helyükön. Hogy ténylegesen mi kerül a 0-k helyére, azt a paletta határozza meg.

2. pixel: vörös komponens felső 6 bitjének átállítása

3. pixel: zöld komponens felső 6 bitjének átállítása

4. pixel: kék komponens felső 6 bitjének átállítása

A 4. pixelünk a képernyőn már pontosan olyan színű lesz, amilyet eredetileg akartunk. Amúgy a grafikus memóriába kerülő értekek "végén" szereplő 0-k és 1-k a HAM8 kontroll bitek, ezek HAM8 esetén az alsó 2 bitplanén vannak.

Mégegyszer: ez egy elmeleti rágódás volt. Gyakorlati haszna nincs a 16.8 millio szín ilyetén megvalósításának 262 ezerrel szemben, mivel pl. a fenti paletta nagyon sötétté tenne egy képet, hogy más bajáról ne is beszéljek. De tessék megjegyezni, hogy egy HAM8-as képernyőn tetszőleges színû pixel megjeleníthető ugyanazzal a megfontoltan beállított palettával, tehát elvileg egy képernyőn bármilyen színû pixel (a 16.8 millióból!) szerepelhet, ha azt a kép mérete lehetővé teszi.

 

Att1s SH

(Idézet a TFH AGA.Guide-ból:

Since only 6 bitplanes are available for modify data, the data is placed in 6 MSB. The 2 LSB are left unmodified, which allows creation of all 16,777,216 colors simultaneously, assuming one had a large enough screen and picked one`s base registers judiciously. This HAM mode also works in HIRES and SHRES modes.

Fentiekben épp ezt valósítottuk meg. -Emeric SH)

 

 

 
 
 
GLOBAL LINKS DOWNLOAD AREA MESSAGE BOARD