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)