A KAPCSOLÁS
Ez az apró hardver átalakítás lehetővé teszi, hogy kedvenc PRIMO géped "színes" képet adjon. Azért persze ez enyhe túlzás, mert csupán a betűszínt lehet állítani, de a szürkéhez szokott szemnek már ez is üdítő látvány.
A legtöbb modern televízió
ma már rendelkezik az ún. EURO-SCART csatkakozóval,
amely egy többfunkciós VIDEO I/O interfész. A TV-k nagy többségén ezen a bemeneten
lehetőség van közvetlen RGB jelek bevezetésére
is. A csatlakozó kiosztásáról illetve arról, hogy ezen megvan-e az RGB bemeneti
lehetőség minden esetben aTV-hez mellékelt - jó eséllyel magyar nyelvű - útmutató
tanulmányozását ajánlom. Egyébiránt a SCART kiosztás számos helyen fellelhető
az interneten is.
1 AUDIO Output
Right 2 AUDIO Input Right 3 AUDIO Output Left 4 AUDIO Ground 5 BLUE Ground 6 AUDIO Input Left 7 BLUE 8 Function Switching 9 GREEN Ground 10 Comm Data 2 11 GREEN 12 Comm Data 1 13 RED/Chroma Ground 14 Comm Data Ground 15 RED/Chroma 16 Blanking 17 VIDEO/Sync/Luminance Ground 18 Blanking Ground 19 VIDEO/Sync/Luminance Output 20 VIDEO/Sync/Luminance Input 21 Common Ground |
|
Az RGB kép megjelenítéséhez szükség van a három alapszín, a szinkron jel, valamint egy kapcsoló feszültség bevezetésére a TV-be. A 16-os Blanking lábra adott TTL magas szint (+5V) bekapcsolja az RGB bemenetet. Ugyanakkor a szinkron jelet a normál video bemenetre (20-as láb) kell kötni, és ez a jel a PAL szabványnak megfelelőlen, tehát NEM TTL szintekkel adja a szinkront (szinkron szint=0V, fekete szint=0.3V) Szerencsére a PRIMO rendelkezik ilyen video jellel.
Hogyan állítjuk elő a szükséges színkombinációt? Nos, ha minden színt csupán digitálisan 1 és 0 állapotúnak tételezünk fel, akkor 23, azaz 8 különböző színt tudunk előállítani, de mivel ezek között van a fekete is (000), ami ugye a háttérszín, ezért igazából 7 színről beszélhetünk. Ezt a három bites kombinációt ugyanakkor tárolni is kell valahogyan. Először arra gondoltam, hogy beépítek egy 4 bites D tárolót a PRIMO-ba, de aztán jobban átgondolva rájöttem, hogy eleve van három olyan bit a KI-1 (OUT 0..63) porton, amelyeket semmi értelmes feladatra nem használ a PRIMO. Ezek a V24/1 (D2), V24/2 (D5) és a joystick léptető (D6) bitek. (Az igazsághoz hozzá tartozik, hogy a D2 bitet a load/save utasítások kapcsolgatják, de ezt most nem vettem figyelembe, az egyszerűség volt a legfőbb szempont.)
Ha tehát e három bitet felhasználva a digitális videojelet rávezetjük az R, G, B TV bemenetekre (megfelelően átalakítva), akkor színes képet kapunk, ráadásul ennek a minősége jobb, mint a PRIMO-ból kijövő mono videojelé. A digitális jeleket egy 4 bites meghajtóval, a 74HC125-ös IC-vel állítjuk elő, majd a meghajtó kimeneteket egy egyszerű ellenállás osztóval hozzuk a szabványnak megfelelő 1V-os szintre.
A kapcsolás alkatrészigénye nem jelentős, ezeket bármelyik elektronikai boltban beszerezheted:
1 db 74HC125
(elvileg LS is jó, de a HC fogyasztása kisebb és jóval gyorsabb is)
1 db 10K elleneállás
3 db 470 ohm ellenállás
1 db SCART dugó, illetve a szükséges hosszúságú
vezeték
[ + ha egy a PRIMO-ból is kihúzható kábelt akarsz készíteni, akkor mindenképp
kell egy csatlakozópár apa/anya. Egyiket a PRIMO dobozába kell építeni, másikat
nyilván a kábel egyik végére. Nem akarom túlmagyarázni, biztos láttál már olyan
vezetéket, aminek két vége volt. ;-) ]
A megvalósítandó kapcsolás a következő:
Természetesen ehhez tudni kell, hogy a PRIMO-n belül mi hol található. Ebben segítséget nyújt a hardver füzet és a kapcsolási rajz. A tápfeszültség és a GND szint megtalálása gondolom senkinek nem okoz gondot. A VIDEO jelet legegyszerűbb az RF modulátorról elhozni, egyébként az alaplapon a Z80-as processzor mellett található tüskén jelenik meg, illetve a tápfeszültség csatlakozó egyik lábán szintén, meg kell nézni a kapcsolási rajzot a hardver füzetben.
A 74LS273 (IC55) egy 8 bites D tároló a KI-1 portot megvalósító IC. Kinagyítottam a kapcsolási rajzon, hogy mit is kell keresni:
A 20 lábú IC 15-ös (piros kapcsoló), 16-os (zöld kapcsoló) és 2-es (kék kapcsoló) lábán jelennek meg a megfelelő kimenő bitek, amelyek a 74HC125-ös vezérlő bemeneti lesznek (OUT b2/b5/b6). A soros videojelet (SOD) a 74LS166 (IC27) shift regiszter kimenete (13. láb) szolgáltatja, ezt kell mindhárom színmeghajtó bemenetére vezetni.
A rajzon látható, hogy a kapcsoláshoz 74HC125-ös mind a 4 meghajtóját felhasználtam. A legelső - melyet az OUT/b6 bit kapcsol - tulajdonképpen egy inverter funkcióját látja el itt. Erre azért van szükség, mert a PRIMO értelmező az általunk használt mindhárom bitet magasra állítja, így bekapcsolás után - ha ez az inverter nem lenne itt - minhárom színt kikapcsolná a gép, fekete alapon fekete betűket "látnánk", azaz semmit sem látnánk. Ezzel a megoldással viszont az alapszín minden esetben a kék lesz. (Megjegyzem, ha neked más alapszín szimpatikus, akkor annak vezérlő bitjét kell invertálni, ennek semmi akadálya.)
A kimeneteken található 470 ohmos ellenállások biztosítják, hogy a TV RGB bemeneteire nem 5V TTL szint, hanem csupán 1V körüli érték kerül az adott szín bekapcsolt állapotában. Kikapcsolt állapotban a meghajtók kimenetei nagyimpedanciás (Hi-Z) állapotba kerülnek, ezért ilyenkor a megadott színkomponens a TV belső ellenállásán keresztül - szabvány szerint ez 75 ohm - a 0V szintre kerül.
Amennyiben a kapcsolást sikeresen összeállítottad és kipróbálod, a PRIMO képernyője kék színnel fog bejelentkezni.
PROGRAMOZÁS
A PRIMO KI-1 portját - mivel csak részleges címdekódolás van a 0..63 tartományban bármelyik címre aktív - BASIC-ben az OUT utasítással lehet állítani, de mivel ez a port csak írható, az interpreter egy ún. tükörbájtban tárolja az utoljára kiírt értéket. Emiatt a tükörbájtot kell minden esetben kiolvasni, aztán módosítani, majd visszaírni. Ez után adható ki a megfelelő OUT utasítás. Ha nem így teszed, akkor a következő hang kiadásakor a tükörbájt értéje úgyis visszakerül a portra. A tükörbájt értéke a bejelentkezés után a minden esetben 237, ez binárisan:
11101101
Színekkel jelöltem, hogy melyik alapszínhez melyik bit tartozik. A piros és zöld színek esetében a bitek 0 értéke kapcsolja be a színt (ekkor kap a HC125-ös megfelelő vezérlő lába 0 szintet, azaz a meghajtó kinyit), a kék szín viszont fordítva működik az inverter miatt, ezért ott az 1 jelenti a bekapcsolt a 0 pedig a kikapcsolt állapotot. éppen ezért látjuk kék színben a bejelentkező képet.
Az alapszín megváltoztatásának menete BASIC-ben a következő:
piros
be/ki
poke 16443,peek(16443) and 251
poke 16443,peek(16443) or 4
zöld
be/ki
poke 16443,peek(16443) and 223
poke 16443,peek(16443) or 32
kék
be/ki
poke 16443,peek(16443) or 64
poke 16443,peek(16443) and 191
Látható, hogy kék kapcsolása az invertálás miatt fordítva történik. Természetesen a bitek együtt is kapcsolhatók a megfelelő bináris kombinációval. (Mint említettem, a save és a load utasítás a piros és zöld vezérlő biteket átmenetileg módosítja, így elképzelhető, hogy amikor magnóról olvasol vagy mentesz, az alapszín átmenetileg megváltozik. Az igazi megoldás az lett volna, ha további D tárolókat építek be, de mint már említettem, lustaságom határtalan. Nem volt kedvem ennél többet forrasztani.)
(Joco)