A kép a televízió képernyőjére rajzolódik ki, és sorokból áll, 312-ből és egy félből, viszont csak 302 látható. (A PAL szabvány alapján ez a 312,5 sor csak egy félképet alkot, egy teljes képet 625 sor tesz ki, viszont itt csak a félképes módszert tárgyaljuk. A lap alján lehet erről olvasni.) A sorok egyenletesen fel vannak osztva kis egységekre, vagyis pixelekre: 640-re a teljes sorban, ebből 520 látszik. Igen, van sor és pixel is, ami nem látható.
A gép nem rendelkezik videomátrix hardverrel, ezért a processzor felelős a kép megjelenítéséért. Mivel a kép rajzolását nem lehet szüneteltetni, ezért jól kell a képkimenetet időzíteni, de hardveres segítség van ehhez. A televizióképernyőre a kép valós időben rajzolódik ki fokozatosan, és folyamatosan, a pixelek balról jobbra, és a sorok fentről lefele. A megjelenő színt a processzoron található P1.2-P1.7 portbitekkel lehet kezelni. 6 bites színmélységű a kivetített kép, vagyis 2⁶=64 különböző színt lehet előállítani. Egy pixel 3 komponensből áll: piros (P), zöld (Z), kék (K).
A P1.1 és P1.0 biteket nem célszerű bekapcsolni, mivel jelen esetben azok az I2 időzítő bemenetei.
A színkód felépítése a P1 porton:
¤7:P (1. bit)
¤6:P (0. bit)
¤5:Z (1. bit)
¤4:Z (0. bit)
¤3:K (1. bit)
¤2:K (0. bit)
A kép sorrajzolási gyakorisága 15,625kHz (50Hz-es kép×312,5 sor), egy sor rajzolási ideje ennek reciproka: 0,000064sec, ami 64μsec. A szinkronjelgenerátor frekvenciája 10MHz, ennek reciproka: 0,0000001sec, ami 0,1μsec.
Viszont a processzornak minden ún. "machine cycle" teljesítéséhez 6 processzorjelre van szüksége, ami 640/6=106,66 machine cycle-t eredményezne soronként (10MHz-es óra esetén). Ez vállalhatatlanul kisméretű képet eredményezne, ezért ezt úgy kompenzáltam, hogy a processzor 40MHz-es órával működik, így 40/6=6,666; 1/6,666=0,15; 64/0,15=426,66 machine cycle van egy sorban, ami már jóval részletesebb kép megjelenítésére is alkalmas.
A videogenerátor rendelkezik processzormegszakítási képességgel is az INT0 porton, amit a $18 címen lehet kezelni, és a következő eseményekkor történhet:
¤7:Következő sor eleje
¤4:Következő képkocka eleje
¤1:$1b-ben meghatározott pixelen
¤0:Külső port
Az összes megszakítási mód a Megszakítások+RST lapon van dokumentálva, itt csak a relevánsak láthatóak.
A képmegjelenítés kétféleképpen valósítható meg: 312 vonalas implementálás során a teljes, televízión látható kép páros számú vonalaira rajzoljuk az egyik képkockát, majd a következő képkockát a páratlan számú vonalakra. 576 vonalas megvalósítás esetén pedig a képkocka páratlan szűmú vonalait értelemszerűen a TV-kép páratlan számú vonalaira, míg a páros számú vonalakat a TV-kép páros számú vonalaira vetítjük ki. Viszont ilyen megoldás esetén csak 25Hz-es képet kapunk, mivel a félképek váltakoznak 50Hz-cel, és két félkép kell egy teljes képhez.
Nincsenek megjegyzések:
Megjegyzés küldése