1. RENDSZERLEÍRÁS

1.1. RENDSZERVÁZLAT

A Commodore PLUS/4-es mikroszámítógép a saját kategóriájában kétségtelenül a legjobbak közé tartozik. Képességei igen kiválóak, akár a belső funkcióit, akár a külvilággal való kapcsolattartás lehetőségeit tekintjük.

64 kbyte beépített RAM-mal rendelkezik, 128 kbyte-nyi ROM-ot tud kezelni, amelyböl 64 K-nyi eleve beépített.

A gép programozója ezenkívül 2 hanggenerátort, 3 időzítő számlálót kezelhet, sokféle módon variálhatja a képformátumot, a színeket.

Megvalósítható vele RS232-es kapcsolat, soros Commodore buszon való kommunikáció, de rendelkezik

párhuzamos porttal is.

A beépített szoftverek jól kihasználhatók, különösen az egymásközti adatcsere lehetőségei miatt. E s01l: szolgáltatást lényegében 3 intelligens chip valósítja meg: a CPU, a TED és az ACIA, több kiegészítő áramkör közreműködésével. Ezen IC-k belső szerkezete és a gép belső rendszerének felépítése a fejlődés egy magasabb szintjét képviselik a Commodore mikroszámítógép családon belül.

Kezdjük tehát a PLUS/4-es belső rendszerének vázlatos áttekintésével- amelynek sematikus rajza a 1. ábrán látható.

A rendszer címbusza 16-bites, ezen keresztül címezheti a processzor vagy a TED a memóriát vagy az I/O eszközöket. A 7501-es ún. memóriába ágyazott I/O címzést használ, ami azt jelent, hogya memóriacím- tartomány egy része a különböző áramkörök vagy chipek megszólítására használatos, az ezzel átfedésben lévő memóriát nem használhatjuk. '

A processzor - mivel 8-bites - egyszerre csak 64 kbyte memóriát "lát" (ennyit tud címezni), de a felső 32 K-t cserélni lehet (memórialapozás). Az ezzel a területtel címátfedésben lévő RAM is "él", a BASIC programok is használhatják minden probléma nélkül. A tárrészek ily módon történő szervezését a TED, az FPLA és a ROM-szelektáló áramkör együttesen végzi. A dinamikus RAM IC-kböl felépülő memória működéséhez és címmultiplexeléséhez szükséges jeleket a TED szolgáltatja (CAS, RAS, MUX).

Az FPLA állítja elő a "chip select" jeleket (kivéve a CSO-t és a CSl-et, amelyek a TED-töl jönnek), vagyis ő határozza meg, hogy mely címek beérkezésekor melyik tokot (chipet) kell "kiválasztania". Ez az IC állítja elő a cI>2 órajelet is az ACIA-nak.

Az ACIA egy programozható, soros adatcserét vezérlő eszköz, amellyel RS232-es jellegű kapcsolat valósítható meg a PLUS/4-es és egy külső eszköz között. Ehhez bels5 (chipen belüli) baud-rate generátorral is rendelkezik. Kimenetei és bemenetei a USER PORT-on érhet5k el.

Ugyancsak a USER PORT-ra csatlakoznak a gép 8-bites port jának kivezetései, is, ezeken keresztül párhuzamos adatforgalmat bonyolíthatunk le a PLUS/4-es és egy külső eszköz között.

A külső adattároló eszközökkel való kapcsolatát a CPU a CASSETTE és a SERIAL csatlakozókon keresztül tartja fenn; előbbi a Commodore kazettás magnóhoz illeszkedik, míg az utóbbi a "soros IEC"-busz csatlakozója, ezen keresztül cserélhet adatot a gép más ilyen rendszerű eszközökkel (a legfontosabbak: a Commodore floppy és nyomtató).

A CPU a 6502-es alaptípussal kompatibilis (szoftver szempontból), kibővítve egy 7-bites parttal, amelynek a gépen belül meghatározott feladatai vannak (pl. a soros busz adatainak kiküldése, ill. fogadása). A rendszer adatbuszának irányát a processzor a R/W jellel határozza meg.

A CPU-hoz érkelnek be - bizonyos események bekövetkelte esetén - a programrnegszakítást (interrupt)

kérő jelek az IRQ vonalon, amelyet az vagy figyelembe vesz, vagy nem, a belső 1 jelzőbit állapotátó1

függően. ,

A processzor órajelét (~o) a TED állítja elő a kvarcoslcillátorból jövő jelbő1. A TED vezérli a processzor.; AEC és RDY bemeneteit is, ezzel tudja a rendszerbusz kezelését átvenni a processzortó1.

A TED eddig nem említett feladatai közé tartozik a billentyűzet és a botkormányok (joystickok) kezelése, amelyeknek adott időpontbeli állapotát egyik regiszterében tárolja. A TED szolgáltatja a kép-, szÍD- és hangjeleket, amelyek a VIDEO csatlakozóra kerülnek. A tv készülékek által feldolgozható jel, amelyet a modulátor nevű segédáramkör állít elő a COLOR, a LUM és az SND jelekból, az R.F. csatlakozón jelenik meg.

A PLUS/4-es áramköreinek tápfeszültségét egy +5 V-os tápegység állítja e1ő, amely egy külső dobozban.- helyezkedik el.

1.2. A CPU ÉS A TED

1.2.1. A 7501-es processzor

A PLUS/4-es gép központi egysége (CPU) a 7501-es típusú mikroprocesszor (U2-esjeld). Egyes gépekben 8501-es processzort találunk, e kettő között azonban sem szoftver, sem hardver szempontból nincs

különbség. "

:

A következőkben tekintsük át a processzor működését - a chip felülnézeti rajzán (2. ábra) feltüntetett~

- kivezetésnevek alapján. ~

- ~J

 

AO, .. ., A15 (6-22-es lábak, a 20-as kivételével)

Egyirányú címbusz, a processzor ezen a 16 kimeneten keresztül küldi ki a címeket a memóriának és az I/O áramköröknek. A CPU-fi belüli címbuszmeghajtók kimenete az AEC jellel tiltható le, ilyenkor a TED veszi át a busz vezérlését.. ~ I

 

DO, ..., D7 (3I-3S-as)

Kétirányú adatbusz, e 8 kivezetés az adatforgalom lebonyolítására való. Az adatok irányát a R/W kimenet állapota határozza meg.

Vcc, GND (5-ös, 20-as)

A CPU tápfeszültség-ellátásának kivezetései a GND testpontra vannak kötve, a Vcc pedig +5 V-ra.

RES (40-es) A hardver RESET kiváltására való bemenet. Az erre érkező O-ba menő, majd ismét az 1-es logikai szintre ugró RESET jelre (a pozitív felfutó élre) a processzor beolvassa a $FFFC(65532) és $FFFD(65533) címek tartalmát, és az ekét byte-ból adódó ($FFFC: alsó byte, $FFFD: felső byte) címre adja a vezérlést (a PLUS/4-esnél $FFF6), vagyis a RESET rutint kezdi el végrehajtani.

A RESET jelet egy UA 555-ös típusú időzítő IC állítja elő (U8-as). Ennek kimenetén 1-es szint jelenik meg a gép bekapcsolásakor, vagy ha a RESET gombot megnyomjuk, és elengedjük. A jel szélességét az U8-as 6-7-es lábaira kapcsolt C27-es jeId kondenzátor és az R18-as jeId ellenállás időállandója határozza meg, ill. az, hogy mikor engedjük el a nyomógombotj értéke 0,5-1 s körül mozog. Bekapcsoláskor a C23-as kondenzátor pillanatnyi kis impedanciája biztosítja az 555-ös indításához szükséges alacsony szintet, annak 2-es lábán.

A 3.,as kimeneten megjelenő jel kétfelé oszlik a továbbiakban, az U7-es jeId 7406-os IC által invertálva. Ennek 12-es kimenetéről érkezik RESET jel (RESET) a gépen belüli áramköröknek - a CPU-nak is -, míg a 2-es kimenet a külső eszközöknek ad O-ás szintet (BRESET).

A 7406-os O.C. kimenete miatt a külső O szint nem hat vissza, így a perifériák resetelhetők anélkül, hogy a processzor alaphelyzetbe állna.

~OIN (I-es) .

Bemenet, ide érkezik a processzor működéséhez szükséges órajel (cI>o), amely a TED 12-es lábáró1

jön. A TED ezt a jelet az órajelgenerátorból jövő - az Y1 kvarckristályéval megegyező frekvenciájú

- CLK IN órajelbő1 állítja elő. A cI>o szimmetrikus, 50 %-os kitöltési tényezőjd négyszögjel. Frekvenciája nem állandó, két állapot között váltakozik attó1 függően, hogy a TED milyen mdveletet végez. Ha ui. a képszerkesztés szükséges adatait olvassa ki a memóriából, erre az időre a processzornak egyszeres órajelet ad

(single clock - 886,7 kHz), egyébként pedig kétszeres órajelet kap a CPU (twice clock - 1,773

MHz). A cI>o bemenetre érkező jel frekvenciája tehát az előbbi esetben a CLK IN frekvenciájának 20-ad része, utóbbi esetben pedig annak 10-ed része.

AEC (4-es) . Address Enable Control bemenet, a processzor cimbuszvezérlésének letiltására való. A CPU-n belül a 16 címvonal mindegyikén van egy-egy meghajtó áramkör, amelyeknek kimeneteit az AEC bemenetre adott O szinttel lehet letiltani, ilyenkor a processzor" elengedi" a címbuszt. Az AEC-jelet a TED kezelij .arra az időre O szintre viszi, amíg a karakterkódokat, ill. a fényerő- és színinformációkat kiolvassa a tárból, s erre az időre átveszi a címbusz vezérlését.

RDY (2-es) Amikor egy processzoros rendszerben a CPU ír vagy olvas egy eszközt (pl. a memóriát) , előfordulhat, hogy annak saját lassúsága miatt hosszabb időre van szüksége az adat fogadásához vagy kiadásához, mint amit a processzor nyújt az adott mdvelethez. Ilyenkor általában egy segédáramkör a RDY vonalat O szintre viszi arra az időre, amíg a külső eszköz elkészül. Ennek hatására a processzor a mdveletvégzésébe várakozó ciklusokat illeszt be, és a RDY bemenetre érkező 1-es szint hatására folytatja csak a mdveletet. A PLUS/4-es gépben a TED kezeli a RDY-t, ennek segítségével várakoztatja a processzort arra az időre, amíg a busr;t használja (1. az AEC leírását). Az ilyen típusú adatforgalom-bonyolitást cikluslopásos DMA mdveletnek nevezik.

GATE IN (23-as)

Kapuzójel-bemenet, ezt is a TED vezérli, ugyanez a jel végzi a dinamikus RAM-ok címmultiplexe- reinek váltását is (MUX).

 

R/W (39-es) READ/WRITE kimenet. Az egyik legfontosabb jel a rendszerben, meghatározza az adatforgalom irányát az adatbuszon, vagyis azt, hogy a processzor egy adott időpillanatban olvassa vagy írja-e a memóriát (és az I/O területet). Az RW vonal 1 állapota esetén a OPU olvas (READ), azaz be~assa az adatbuszon lévő adatokat, amelyeket ebben az esetben egy másik chip-től kap.

R/W = O esetén értelemszerűen fordított a helyzeti ilyenkor a processzor ír egy adott címre

(WRITE) .

- /

IRQ (3-as) , Interrupt Request,azaz a megszakításkérés bemenete. Funkcióját tekintve a 6510-es maszkolható programmegszakításának (letiltható megszakítás) felel meg. A maszkolhatóság annyit jelent, hogy a gépben futó program megakadályozhatja a megszakítás érvényesülését (SEI utasítással), azaz a kívülről érkező megszakításjelek nem okoznak programrnegszakítást. Amennyiben a szoftver engedélyezte a megszakítást (011 utasítás), az IRQ bemenetre érkező O szint hatására a OPU felfüggeszti a program végrehajtását, az állapotregiszter és a programszámláló pillanatnyi értékét elmenti a verembe (stack-be). Ezután beolvassa az $FFFE(65534) és $FFFF(65535) címeken található két byte-ot, s az így létrejövő címre ($FFFE-n van a cím alsó fele, $FFFF-en a fölső) ~ át a vezérlést, ahol a megszakításkiszolgáló rutin kezdődik (a PLUS/4-esnél $FOB3).

IRQ jelet a PLUS/4-esben a TED, az AOIA vagy valamely külső eszköz küldhet a OPU felé (ez utóbbi a USER PORT-on keresztül).

A 7501-es processzor sajnos nem rendelkezik "nem letiltható megszakítás" bemenettel (NMI = nem maszkolható interrupt).

PO, . .., P4, P6, pr (24-30-as) A processzor beépített, 7-bites' port jának kivezetései, ezek iránya (ki- vagy bemenet) prog- ramozható. Szoftver szempontból egy olyan 8-bites portnak látszik, amelynek a hatodik bit je (P5-ös) állandóan O szinten van. A tár első címén ($0000) található a port adatirány-regisztere, a második címen ($0001) pedig az adatregiszter, amely a portvonalak aktuális értékét veszi fel. Az adatirány-regiszter adott pozíciójú bitjeinek értékei határozzák meg az ugyanolyan pozíciójú portkivezetés irányát, ahol a O értékű bit bemenetnek, az 1 pedig kimenetnek való programozást jelent. Bekapcsolás, ill. RESET művelet után ez a byte $OF(15) értékű lesz, azaz a Po-P3-as portvonalak kimenetként, a P4-es, a P6-os és a P7-es vonalak pedig bementnek programozódnak. Az adatregiszter értéke $08(200) lesz (ha nincs kazettás magnó a géphez csatlakoztatva). Megfigyelhetjük, hogy a hatodik bit mind az adatregiszterben, mind az adatirány-regiszterben O értékű, és át sem írható (ez a nem létező P5 bit helye).

A processzor vonalai~ azonban nem használhatjuk föl tetszésünk szerint, mivel azoknak a PLUS/4- es belső rendszerében meghatározott szerepük van. Ha megnézzük a kapcsolási rajzot, láthatjuk, hogy a PO-s, a Pl-es és a P2-es vonalakra az U7-es inverter (7406-os) egy-egy kapuja csatlakozik, amelyek megakadályozzák, hogy külső jel visszahasson a portra, így ezeket a vonalakat csak kimenet ként lehet használni. A rajzból az is látszik, hogya PO-s értékének negáltja a P7-es vonalra étkezik vissza, vagyis ha pl. PO-s értékét 1-re állítjuk, a P7-es vonalán O szint jelenik meg. Ugyanígy visszajut a Pl-es negáltja is a P6-osra.

Az egyes portvonalak funkciói a következők:

PO: a soros lEO busz DATA vonalának írása;

Pl: a soros lEO busz OLK vonalának írása, ill. a kazettás magnóra történő adat kivitel (OST WRT)j P2: a soros lEO busz ATN vonalának vezérlése;

P3: a PLUS/4-eshez csatlakoztatott magnó motorjának vezérlése egy tranzisztoros meghajtóáramkörön

keresztül (Q2-es tranzisztor), ahol az 1 'szint jelenti a motor leállítását, a O pedig az elindítását; P4: adatolvasás a kazettás magnóról (OST RD)j

P6: a soros lEO-busz OLK vonalának olvasása (ez azonos a aST WRT-vel);

 

PT: a soros IEC busz DATA vonalának olvasása. Ehhez a vonalhoz tartozhat még egy funkció (CST . SENSE), amely csak akkor aktív, ha a nyákon a J8-as jumper át van kötve. Ez a bemenet 1 szinten

van, ha a kazettás magnón egyik billentyd sincs lenyomva, ellenkező esetben O-ban a STOP és az EJECT gomb hatástalan. A aST SENSE vonal figyelése a $FD10, . . ., $FD1F címek bármelyikén elérhető port (U5-ös jeId, 652gB típusú) 2. bit jén keresztül történik.

,

1.2.2. A TED - célorientált IC

A Commodore PLUS/4-es gép mdködésének legfőbb irányítója a 7360-as (vagy 8360-as) típusszámot viselő 48 kivezetéses Dll tokozású áramkör, a TED. Ez egy olyan nagyintegráltságú IC, amely speciálisan egy mikroszámítógépes rendszer alapvető feladatainak ellátására készült, és leginkább a 7501- es processzorhoz illeszkedik. Tervezői egy tokba integrálták mindazon áramköröket, amelyeket korábban több külö'ná1ló alkatrészből (IC-kből és más elektronikai elemekből) kellett összeállítani. Nézzük meg pl. a C 64-es kapcsolási rajzát.) Mindezek alapján nevezhetjük a TED-et célorientált IC-nek, mivel erre a célra (ebbe a gépbe) kiválóan alkalmas, de nem univerzális, más gépekben nemigen, vagy csak körülményesen lehetne felhasználni. (Az ACIA sokkal univerzálisabb; bármely más 8-bites processzorral felépülő mikrogéphez illeszthető mint soros kommunikáció-vezérlő eszköz.)

A TED egymagában:

. komplex színes videojel előállító, . órajel előállító,

. időzítő,

. hanggenerátor.

Ennek a sokfunkciós toknak sok előnye van - a legfontosabb az alacsonyabb előállítási költség -, de

vannak hátrányai is, hiszen ha egy áramköri része meghibásodik, az egész IC-t cserélni kell.

Láthatjuk, hogy a TED szinte minden mdködésifolyamatba "beleszó1", éppen ezért ebben a fejezetben csak röviden tekintjük át a mdködését. Az egyes részegységekre kifejtett hatását az adott fejezetben tárgyaljuk, a programoz ás át pedig a processzor'programozásának leírását követően ismertetjük.

Most tehát vessünk egy pillantást a kapcsolási rajzra. Látható, hogy a TED-nek ~ akárcsak a

processzornak - 16 címvonala és 8 adatvonala van, így a teljes tárral tud kommunikálni (Ao-A15- ös és Do-D8-as lábak). Ezt a lehetőségét ki is használja; DMA mdvelettel a processzor kikerüléséveI közvetlenül a memóriából hozza el a képelőálIításhoz szükséges adatokat (1. még a 1.2.1. pontban, a processzor AEC és RDY kivezetéseinek; leírásánál). A TED buszvezérlő jelei a BA (34-es láb) és az AEC (35-ös láb).

A Ko-K7-es bemenetek a billentyűzet és a joystick-ok jeleit fogadják. A TED 8. regiszterének címére történő írás hatására a billentydvonalak állapotai átmenetileg eltárolódnak, és a következő utasítással ki lehet olvasni a bejött értéket a $FF08 címről.

A kvarcoszcillátorró1 jövő CLK IN jelet a 14-es bemenet fogadja, a chip ebből állítja elő a ~o órajelet a processzornak, amely a 12-es kimenet én jelenik meg.

A 8-as kivezetésen jelenik meg a TED - processzor felé küldött - megszakításkérés-jele. Azt, hogy ez mikor aktivizálódik, a programozásáró1 sl616 fejezetből tudhatjuk meg.

A csa és CSI kimenetek (5-ös és 6-os) a ROM-ok címzésében játszanak szerepet. Az éppen aktuális ROM-konfigurációból a csa a "LOW" tárterületen, a CSI pedig a. "HIGH" területen lévő ROM chip- select jelét engedélyezi (1. A ROM-ok és a cartridge c. részt).

A MUX kimenet (9-es), valamint a RAS és CAS kimenetek (lO-es és ll-es) a RAM-ok mdködéséhez

szükséges jeleket adják (1. A RAM-ok).

A 13-as, 23-as és 33-as kimeneteken jelennek meg a kép-, szm- és a hanginformációk, amelyek a video- és a modulátoregységbe jutn~.

 

1.3. A GÉP MEMÓRIÁJA

1.3.1. A ROM-ok és a cartridge

A ROM-okkal kapcsolatban mindenekelőtt tisztáznunk kell néhány fogalmat. A ROM (Read Only Memory) - csak olvasható memória (tár) - elnevezést ma már általánosan használják, a mikrogépekben ROM-területnek hívják a csak olvasható memóriaterületet, függetlenül attól, hogy konkrétan milyen IC típuss al valósították meg. Az IC-k lehetnek ún. maszkolt ROM-ok, amelyeket már a chip gyártása során beprogramoztakj PROM-ok (Programmable ROM), amelyeket a felhasználás során egyszer lehet beprogramoznij EPROM-ok (Electrically Programmable ROM), amelyeket a felhasználó szükség esetén UV-fénnyel kitörölhet, majd újraprogramozhatj valamint EEPROM-ok (Electrically Erasable Programmable ROM), amelyek elektromos úton törölhet5k és újraprogramozhatók. (A ROM-ok programozását szokták egyébként "égetésnek" nevezni.) Nálunk az EPROM-ok a leginkább elterjedtek, ezek könnyen felismerhet5k jellegzetes üvegablakukról. Az EEPROM típusok ma még viszonylag drágák és nehezen hozzáférhetőek ahhoz, hogy széles körben elterjedhessenek.

A PLUS/4-esbe ROM-okat építettek be, ezek egyenként 16 kbyte tárolókapacitású ak (pozíciószámuk: U23, U24, U25, U26, típusuk: 23128-as). Az elSő a BASIC-ROM, a második a KERNAL-ROM, a harmadik a FUNCTION LOW, a negyedik pedig a FUNCTION HI elnevezésd. Ez utóbbi kettőben a PLUS/4-es beépített programjai találhatók. Ezeken felül a gép további négy 16 kbyte-os memória- területet tud kezelni - ROM-ot vagy RAM-ot -, amelyeket a cartridge-csatlakozón keresztül, kívülről illeszthetünk a rendszerhez.

Mielőtt belekezdenénk a ROM-ok részletes magyarázatába, néhány fontos dolgot kell még megemlíte- nünk.

A gép memóriájának felső fele a $8000(32768)-s címtől a $FFFF(65535)-ig lehet RAM-, de lehet ROM- terület is, amely mindig a belső és a külső ROM-ok egyfajta variációjaként van jelen (1. később). Ezen a memóriaterületen azonban van egy szakasz, $FDOO(64768)-$FF40(65344) , amely I/O terület, akár RAM, akár ROM van bekapcsolvaj ezeken a címeken érhetők el többek között a TED és más chipek regiszterei is.

A fölső terület RAM-ROM átkapcsolása a TED két ún. fantomregiszterének címére történő írási művelet hatására következik be. A $FF3E(65342) címre írva (a kiírt érték nem számít) a ROM-ot, a $FF3F(65343) címre írva pedig a RAM-ot látja a processzor a $8000-s cím fölött. Természetesen nem szabad elfeledkeznünk RAM-ra kapcsolás esetén arról, hogy a ROM-ban van néhány fontos rutin,

amelyeket így a gép nem tud használni - pl. a megszakításkezelő rutint - és ez zavart okozhat a

rendszerben.

Lássuk ezek után, hogy mi a helyzet akkor, ha ROM van a tár föls5 32 kbyte-jában. Ebben az

esetben egyidejdleg csak 2 db - egyenként 16 kbyte-os - ROM lehet jelen ezen a területen. A hardver

szempontjából ez azt jelenti, hogy csak 2 PROM kaphat CS (chip kiválasztó) jelet. Azt, hogy melyik kettő legyen aktív, egy 3 IC-ből álló áramkör határozza meg, amelynek beállása az FPLA-tól, a TED-

től és a processzor által kiadott címtől függ. Ez az áramkör végzi tehát - adott címek megszólításának hatására - a ROM-ok "lapozását".

A memória fölső felét további két egyenlő részre oszthatjuk: a $8000(32768)-s címtő.l $BFFF(49151)-es címig terjedő részre - ezt nevezzük LOW-nak -, és a $COOO(49152)-s címtől a $FFFF(65535)-es címig

terjedő részre - ez pedig a HIGH rész.

Az eddig elmondottakat a 3. ábra szemlélteti. Láthatjuk, hogy melyik ROM-ot melyik címtartományba "lapozhatjuk" be.

A könnyebb érthetőség kedvéért tételezzük fel, hogya bővítő cartridge-on 4 db 16 kbyte-os (27128- as típusú) EPROM.,otalkalmazunk, a nevük legyen CARTRIDGE. 1 LOW, CARTRIDGE 1 HI, CARTRIDGE 2 LOW, ill. CARTRIDGE 2 HI, a pozíciószámuk pedig U27-es, U28-as, U29-es és U30-as.

Értelemszerden a tokokhoz csatlakoztatandó chip-select (cs) jelek sorban: C1LOW, C1HIGH, C2LOW

és C2HIGH. A lehetséges ROM-lapozási variációk, az ún. bankok, a következő táblázatban láthatók,

 

amelynek els5 oszlopában az a cím szerepel, amire hova belapozódik a mellette szerepl5 két ROM (a kiírt adat itt is közömbös), A lapozási cím megszólítása el5tt tanácsos egy SEI utasítássai a megszakításokat letiltani. -

 

A tár fölső 32 kbyte-jának kezlését a hardver a következőképpen valósítja meg:

. A tényleges CS jelet az U20-as pozíciójú 74LS139-es IC kimenet ei szolgáltatják a ROM-oknak. Ez a tok két egymástó1 független multiplexert tartalmaz. Ezek úgy inűködnek, hogy az AO-s és az Al-es bemenetre érkező bináris számnak megfelelő kimenetét O-ba viszik, ha az EN (ENABLE=engedélyezés) bemenetük O-ban van, tehát pl. ha AO=I, AI=O és EN=O, akkor a


A táblázatból kitűnik, hogy pl. az $FDD4-es cím megszólítása esetén az U20-as IC 4-es és ll-es lábán jelenhet meg O szint, vagyis a BASIC és a FUNCTION HI ROM-ok kaphatnak kiválasztó jelet, ha a processzor a felső címtartományt címzi. Egy adott időpillanatban természetesen csak az egyik lehet

kiválasztva, ez a csa és CSI jelektől függ.

A ROM-ok kapcsán a cartridge-okró1 kell még néhány fontos dolgot tudnunk, előbb azonban kanyarod- junk vissza a processzor RESET műveletéhez.

A CPU minden RESET művelet esetén elugrik a $FFFCj$FFFD címeken található RESET-vektor által mutatott címre, majd innen tovább ugorva jut el $F2A4(62116) címen kezdődő RESET-rutinra. Ez a rutin lényegében a gép inicializálását (alaphelyzetbe állítását) végzi. Ehhez jó néhány szubrutint ís meghív, pl. a chipek kezdeti feltöltését, a RAM mutatók beállítását végző rutint vagy a kezd,eti RO M- konfigurációt beállító rutint. Ez utóbbi az, ami számunkra most lényeges, ez a programrészlet végzi ui. a cartridge esetleges önindítását (autostart). Az említett rutin egyébként a $FCIE(64542) címen kezdődik.

Nézzük meg, hogyan lehet ezt az önind{tást megvalósítani. A rutin csak 4 esetet vizsgál a korábban táblázatba foglalt ROM-la:pozási variációk közül, a 14-es ($FDDE), a 100es ($FDDA), az 5-ös ($FDD5) és a O-s ($FDDO) bankkombinációt. Sorban beállítja az ezeknek megfelelő ROM-lapozást, s eközben megvizsgálja az adott ROM $8000-től kezdődő néhány byte-ját (1. a 4. ábrát).

 

Legelőször a $8007-től $8009-ig terjedő 3 byte-ot ellenőrzi, ha itt nem a CBM betdk ASCII kódjait találja, akkor "nem foglalkozik" tovább ezzel a ROM-területtel, hanem a következőt vizsgálja. Ha azonban az említett címeken a CBM szöveg található, akkor megvizsgálja a közvetlenül előtte található kódot, és nyilvántartásba veszi (a fizikai cbntáblázatba), ha pedig ez a szám $01, akkor a gép ennek a ROM- konfigurációnak az első címére adja a vezérlést ($800O-re), amely célszerden az adott ROM (cartridge) "hidegstart" programrészletére kell hogy mutasson. Ezután a kezdeti inicializálás után - ha az nem írta

át a veremtárban a visszatérési cbnet -, az adott ROM-ból visszatér a program az eredeti RESET-

rutinra. Ezen felül a hidegindításkor sorban mindegyik létező ROM-konfigurációt elindítja a $800O-es címtől.

A FUNCTION ROM elején található rutin bemáso1ódik az alsó RAM-területre $05F5-től. Ez az a behívó rutin, amely Fl és RETURN hatására behívja (RAM-ba másolja) azokat a beépített programokat,

 

amelyről tulajdonképpen a PLUS/4-es a nevét is kapta. A C 16-os gépben, lévén hogy nincs meg ez a 4 darabból ál1ó szoftvercsomag, az említett behívó rutin sem található meg bekapcsolás után a RAM-ban.
Mindezek alapján tehát, ha azt akarjuk, hogy az általunk. írt cartridge a gép által felismerhető, és értelmezhető legyen, akkor az első 10 címén lévő byte-okat az előző ábrán ak megfelelően kell feltöltenünk.
Végezetül ejtsünk szót a gép legtöbb kivezetési ponttal rendelkező csatlakozójáró1, amelyet a gép hátulján a MEMORY EXPANSION, azaz tárbővítés felirattal láttak el. Ide kell csatlakoztatni a cartridge egységet. A csatlakozónak 50 érintkezője van, ezek fizikai kiosztása látható az 5. ábrán, míg az egyes pontokhoz rendelt jeleket a kapcsolási rajz alapján azonosíthatjuk. A kivezetések között megtalálhatók a cím- és az adatbusz vonalai, a különböző rendszervezérlő jelek, a külső ROM-ok kiválasztó jelei és a +5 V-os tápfeszültség is.
 

1.3.2. A RAM-ok

A PLUS/4-es gép 64 kbyte-nyi RAM-területtel rendelkezik, s ezt a tárterületet mindössze 8 db 4164-es típusú integrált áramkör tartalmazza.

Az UII-U18-as pozíciószámú IC-k ún. dinamikus RAM-ok (továbbiakban dRAM-ok), amelyek egyenként 64 kbit (64 k*l bit) kapacitással rendelkeznek. A 4164-esek egybites be- és kimenete össze van kötve (2-es és 14-es láb), és rácsatlakozik egy adatvonalra. A DD-D7-es vonalak mindegyikéhez tartozik egy dRAM, tehát az IC-k adatvonalai egymástól függetlenek. Címvonalaik viszont közösek, így egy cím megszólításakor a nyolc tok egyszerre küldi ki saját adatát (ami ebben az esetben egy-egy bit) a hozzá

tartozó adatvonalra, az adat buszon tehát egy nyolcbites adat - egy byte - jelenik meg.

Természetesen ez a folyamat így csak a RAM olvasásakor igaz, azaz amikor az IC-k. 3-as lábán (WE"=Write Enable - írás engedélyezés) 1 szint van. A RAM írásakor (WE"=O szint) az adatbuszról íródik az adat a dRAM-okba.

A dinamikus RAM IC-k sajátosságaiból adódóan az adatok címzése sem egyszerű, az adott tárcím alsó és felsó felét (8-8 bitet) külön, időben egymás után kell a tokok címbemeneteire vezetni (AD- A 7-es jelű bemenetek). A processzor által kiadott tárcím szétválasztását az U9-es és az UIO-es pozíciójú 74LS257-es típusú multiplexerek végzik. Ezek az IC-k egyenként 4 db, két bemenettel és egy kimenettel rendelkező multiplexert foglalnak magukba, amelyeknek közös adatválasztó bemenetük van (l-es láb, SELA). A két 74LS257-es l-es bemenete is össze van kötve, így a címbuszon érkező 16-bites cím szétválasztása egyetlen vezérlőjellel elvégezhető (M1:;rX), amelyet a TED szolgáltat.

Úgyszintén a TED állítja elő a dRAM-ok RAS" és CAS jelét is. A RAS elnevezés a Row Address Strobe (sorcím aktiválás), a CAS pedig a Column Address Strobe (oszlopcím aktiválás) angol kifejezés rövidítése. A sor és az oszlop kifejezések a dRAM-ok belső szervezéséből adódnak, azok belsejében ui. az egybites elemi tárolócellák mátrixa 256 sor*256 oszlop elrendezésű. (fgy érthetőbb a működés, a gyakorlatban másként van szervezve a chip belseje a frissítés miatt.)

Most kapcsolódhatunk az előbb elmondottakhoz; a 4164-eseknek ui. a memóriacím alsó fele tartalmazza

a megfelelő sorinformációt (ekkor lesz a RAS alacsony szintű), s az utána érkező érték - a cím magasabb helyi értékű fele - pedig az aktuális oszlopinformáció. Az IC ezután az így kiválasztott (címzett) sor és

oszlop találkozásánál lévő tárolócella értékét írja vagy olvassa.

 

Az elmondottak alapján, és a kapcsolási rajzra ránézve is látszik, hogy a dRAM-ok teljesen a TED irányítása alatt állnak, ami az alapvet5 működési feltételeket illeti, így a szükséges frissítést is a TED végzi. (A dinamikus RAM-ok tárolócelláit soronként, meghatározott id5n belül ki kell olvasni

- pontosabban elég csak megcímez ni -, hogy ne vesszen el a bennük tárolt információ, ezt nevezik frissítés nek. )

.

1.4. AZ ACIA ÁRAMKÖR

M

Az ACIA név az Asynchronous Communications Interface Adapter angol kifejezés rövidítése. Ez

az áramkör egy olyan 8-bites processzorokhoz illeszthet5 chip, amely aszinkron soros adatátvitel i lebonyolitására képes.

A PLUS/4-es gépbe a 6551-es tipusú ACIA került beépítésre, amely az RS232-es interface -val rendelkező készülékekkel való kapcsolattartást teszi lehet5vé. Altalában egy MODEM-r51 vagy egy másik mikrogépr511ehet szó (továbbiakban küls5 eszköz). Itt hívjuk fel az Olvasó figyelmét arra, hogy

mivel az ACIA működése - intelligenciájából adódóan - eléggé bonyolult, ebben a fejezetben csak a

6551-es kivezetéseinek, funkcióinak, regisztereinek leírására kell szorítkoznunk, a működés logikáját, &1

adatátvitel lefolyását az RS232-eső1 szó1ó részben tárgyaljuk. ~

Lássuk ezek után az ACIA leírását. A tok lábkivezetéseit és bels5 felépítését a 6. ábrán láthatjuk. ~ A 6551-es be1s5 baud-rate generátorral rendelkezik (a baud-rate az adatátviteli sebesség egysége), amelynek működéséhez csak egy kvarckristály kell (Y2-es; 1,8432 MHz). Szükség esetén lehetőség van arra is, hogy ezt a sebességet küls5 órajelb51 származtassuk.

Al adatok formátuma is programozható a szóhosszúság 5, 6, 7 vagy 8 bit lehet, a paritásvizsgálat lehet, , páros vagy páratlan, a stopbit 1, 1,5 vagy 2 bit hosszúságára választható.

Al adatok tárolására két regiszter áll a rendelkezésünkre: a vevőoldali adatregiszter (Receiver Data Register) és az adóoldali adatregiszter (Transmitter Data Register). Az el5bbi csak olvasható, míg &1 utóbbiba csak írni tud a processzor (ugyanazon címen helyezkednek el, a $FDOO(64768) címre írt adat az adóoldali adatregiszterbe kerül, az err51 a címr51 történ5 olvasáskor viszont a vev501dali regiszter tartalmát kapjuk meg).

A CPU-val való kapcsolattartásra 3 regiszter szolgál, a processzor ezeken keresztül irányítja és ellenőrzi az ACIA működését. E három legfontosabb regiszter: a parancsregiszter (Command Register), a vezérl5regiszter (Control Register) és az állapot- vagy státuszregiszter (Status Register). Ezek kölül az els5 kett5 írható és olvasható is, a státuszregiszter viszont csak olvasható, a címére ($FDO1(64769) történ5 adatírás viszont a 6551-esnek program-resetet okoz (1. kés5bb).

A parancsregiszter b~tjeit51~g a ~itásvizsgálat, a visszhang üzemmód (echo mode), az inter-~,: ruptvezérlések, valamInt az RTS és DTR vonalak állapota.

A vezérlóregiszter bitjei határozzák meg a stopbitek számát, a szóhosszúságot, a vev501dali órajel forrását és a baud-rate értéket.

Az állapotregiszter jelzi az IRQ, a :ÖSR és a DCD vonalak, ill. a vev5- és az adóo1dali adatregiszterek állapotát, valamint a túlfutás-, keret- és a paritáshibákat (ez utóbbiak értelmezése az' RS232-es c;.

fejezetben található).

 

1.4.1. Az ACIA. kivezetései: ..

DO,...,D'1 (18-25-08 lábak)

Kétirányú adatbusz a nyolc vezeték a processzor és az ACIA közti adatforgalom lebonyolítására szolgál. Az adat áramlás iránya az RjW vonal állapotátó1 függ. Az adatbusz vezetékei nagy- impedanciás állapotban vannak, kivéve azt az esetet, amikor az RjW=l és a csa, CSi be- menetekkel az ACIA ki van választva (ilyenkor ui. ~ vezérli az adatbuszt).

 

TxD (IO-es; Transmit Data)
Kimenet; ,ezen a vonalon történik az adatok soros kivitele a külső eszköz felé. Az adatátvitel az adóoldali adatregiszter legalacsonyabb helyiértékű bit -jével kezdődik. Ennek sebességét a mindenkori beállított baud-rate érték határozza meg (1. vezérlőregiszter felépítését).
RxD (I2-es; Received Data)
Bemenet; ezen a vonalon fogadja az ACIA a külső eszköztől a soros adatokat. Az adatátvitel sebessége vagy a belső baud-rate generátor beállításától függ, vagy a külső eszköz által küldött órajeltől.
RxC (5-ös; Receive Clock)
Kétirányú kivezetés, amelynek iránya az adás, ill. a vételi üzemmódtól függ. Mindkét esetben az aktuális baud-rate érték 16-szorosa jelenik meg rajta (vételkor a külső eszköztől érkezik). A vezérlőregiszter 4. bit je határozza meg, hogy a vétel szinkronizációja a belső baud-rate generátorhoz vagy a külső eszköz órajeléhez történjék-eo
RT§" (8-as; Request to Send)
Kimenet; ezzel a jellel jelzi az ACIA a külső eszköz felé, hogy adatot kíván küldeni. Ez a jel ott felhasználható megszakításkérésre is. Az :R:fS aktív szintje és a megszakításkérési módok a vezérlőregiszter 2. és 3. bit jével állíthatók be.
GTS (9-es; Clear to Send)
Bemenet; itt jelzi a külső eszköz, hogy kész a vételre, azaz az ACIA megkezdheti az adatok

 

küldését. A PLUS/4-nél a GTS bemenet a földre van kötve, ezáltal az ACIA átvitele állandóan engedélyezve van, kívüli-ól nem lehet letiltani.

:fi"ifB: (ll-es; Data Terminal Ready)

Kimenet; az ACIA állapotának jelzésére szolgál. Jelszintjét a parancsregiszter o. bit je határozza meg (1. a parancsregiszter felépítését).

DSR (l'1-es; Data Set Ready)

Bemenet; ennek O szintje jelzi a külső eszköz kész (ready) állapotát, 1 szintje pedig a nem-kész (not-ready) állapotot.

])CD (l6-os; Data Carrier Detect)

Bemenet; MODEM egységgel való kapcsolat esetén az erre abemenetre érkező O szint jelzi, hogya MODEM-nél az adathordozó jelen van, ami tulajdonképpen a MODEM-ek közti kapcsolat meglétét igazolja. A DCD bemenet ezt a jelet a MODEM Carrier Output kimenetéról kapja. A MODEM-ek közti kapcsolat vázlatos rajzát a 24. ábrán láthatjuk.

Vas, Vdd (l-es, IS-ös)

A 6551-es tápellátásának kivezetései; a Vdd-t +5 V-ra kell kötni, a Vss-t pedig földre.

1.4.2. Az ACIA regiszterei

Tekintsük át most az ACIA regisztereit, hiszen a gép használója csak ezeken keresztül irányíthatja az áramkör ml1ködését. A B'ASIC-ból kezeIve a POKEés PEEK utasításokat használhatjuk kombinálva a logikai ml1veletekkel (AND, OR stb.), így a biteket egyenként is módosíthatjuk.

A vezérlóregiszter felépítését a 7. ábra mutatja. A bitek Jelentése a következ5:

O-3. bitek

E bitek kombinációival állíthatjuk be az adás üzemmód adatátviteli sebességét (baud-rate), amelyet vagyabelsó generátor szab meg (1-15 kombinációk) , vagy külső órajelből származtatható (l/l6-od részére leosztva).

4. bit

Ez a bit határozza meg a vevóoldal órajelforrását (külsó vagy belsó).

5., 6. bit

Ezekkel a bitekkel az adatok szóhosszúságát állíthatjuk be.

'1. bit

Az adatátvitel során az egy karaktert lezáró stopbit jelszélessége állítható ezzel a bittel (1. Az RS232-es c. fejezet, átviteli karakterformátum). Ennek O értéke esetén a stopbit mindig 1 bit szélességl1. Ha 1-be állítjuk ezt a bitet, a stopbit 2 bit szélességl1 lesz, ez alól két kivétel van:

. ha aszóhosszúság 5, és nincs paritásvizgálat beállítva, a stopbit 1,5 bit jelszélességl1 lesz (géptávíró üzemmód);

. ha aszóhosszúság 8, és van paritásbit a karakter után, akkor a stopbitnek 1 bitnek megfelelő szélessége lesz.

 

A 8. ábrán a parancsregiszter szerkezetét mutatjuk be, ennek alapján a bitek jelentése a következő:

.0. bit

A DTR vonalat vezérlő bit, amely a rendszer állapotát mutatja. O értéke azt jelzi, hogy a rendszer nem-kész állapotban van (DTR vonal 1 szintd lesz), az l-be állított bit viszont a mikrogép kész állapotát jelenti (DTR vonalO szintd lesz). Ezen felül ennek a bitnek megszakításengedélyező szerepe is van (1. az 1. bitnél).

1. bit

Ez a bit letiltja a vevóoldal megszakítás generálási lehetőségét, ha értéke 1. A vevóoldal megsza- kításkérése akkor engedélyezett, ha ezen bit O értékű, és ha egyidejűleg a o. bit 1 állapotban van.

 

2., 3. bitek

E két bit együttesen vezérli az RTS vonal állapotát és az adóoldal megszakításkérését. A bitek beállításától függő lehetséges variációkat a 8. ábrán láthatjuk.

. 4. bit

Ez a bit engedélyezi a visszhang üzemmódot (ECHO MODE), amennyiben 1-be állítjuk, ellenkező esetben tiltja azt. A visszhang üzemmód esetén az adóoldal adása visszajut a vevőoldalra, 1/2 bit jelszélességnek megfelelő idővel késleltetve. Az üzemmód engedélyezése esetén a 2. és 3. bitnek O-ban kell lennie. A visszhang üzemmód bekapcsolása esetén az RTS vonal alacsony (nulla) szintű lesz.

5. bit

Ennek szerepe a parit áse 16 állít ás és -vizsgálat engedélyezése. Ezen bit 1 értékének hatására az adóoldal paritásbitet generál minden átvitt karakterhez, a vev50ldal pedig minden vételi ciklusban paritásvizsgálatot végez. Az 5. bitet O-ba állítva az adás- és vételciklusok paritás generálás és ellenőrzés nélkül zajlanak le.

 

6., 1. bitek

Paritásmód beálIító bitek, ezek határozzák meg a paritásbit előálIításának és vizsgálatának fajtáját (páros, páratlan stb.) az adó- és a vevő01dalon. A lehetséges bitkombinációknak megfelelő paritásmódot az előző ábráró1 olvashatjuk le.

Az állapotregiszter (státuszregiszter) az ACIA mindenkori állapotának jelzésére szolgál, amelynek kiolvasás ával a processzor tájékozódhat a végbement eseményekrő1 (rajza a 9. ábrán látható). Tekintsük át röviden a bitek jelentéseit.

 

0-2. bitek

Paritáshibát, kerethibát és túlfutáshibát jelző bitek; ezek l-es értéke mutatja az adott hiba e1őfordulását. A hibatípusok értelmezése az RS232-esrő1 szóló fejezetben található.

3. bit

Ez a bit mutatja, hogy a vevőoldali adatregiszter megtelt-e vagy sem. Értéke l-be állitódik, ha az ACIA átvitte a beérkezett adatot a vevőoldali sift -regiszterből az adatregiszterbe (1. a 6. ábrát), és O-ba áll akkor, amikor a processzor kiolvassa a vevőoldali adatregisztert.

 

4. bit

Ez a bit jelzi az adóoldali adatregiszter üres állapotát. Értéke 1 lesz, ha kiürült, azaz ha a 6551-es átvitte az adatot az adóoldali adatregiszterböl a sift-regiszterbe (1. 6. ábra). A 4. bit akkor lesz ismét O, ha a processzor új adatot ír az adóoldali adatregiszterbe.

5., 6. bitek .

Ezek a bitek a DCD és a DSR vonalak (bemenetek) állapotát tükrözik. A O érték jelenti az adott vonal alacsony (logikai O) szintjét, al-es értékd bit pedig a magas szintet. Bármelyik vonal állapotának megváltozása közvetlenül megszakítást okoz a processzornak, amennyiben az ACIA interruptja engedélyezve van (parancsregiszter o. bit je 1-es értékű). Ebben az esetben az 5. és a 6. státuszbitek a változáskor beállt szinteknek megfelelő állapotot fogják mutatni, mindaddig, amíg a processzor ki nem olvassa az állapotregiszter tartalmát (eközben az új változások nincsenek hatással a státuszbitekre).

'1. bit

Megszakításjelző bit; bármilyen - ACIA-n belüli - megszakítás elMordulásakor 1-be állítódik, O-ba pedig akkor áll vissza, ha a processzor kiolvasta az állapotregisztert.

Az adó- és a vevöoldali adatregiszterek szerepe egyértelmű: adáskor és vételkor az adatok tárolása a feladatuk, néhány dolgot azonban fontos még tudnunk velük kapcsolatban:

. Adáskor az átvitel az adóoldali adatregiszter o. bit jével kezdődik, a magasabb helyi értékű bitek sorban követik. A nem használt bitek értéke közömbös (5-, 6- vagy 7-bites átviteli karakterformátum esetén).

. Vételkor a vevöoldali adatregiszter o. bit je tartalmazza az első vett adatbitet, a többi sorban követi. A ki nem használt bitek értéke O lesz. A vevóoldali adatregiszter nem tartalmazza az ACIA-ba beérkezett paritásbiteket, azok eltdnnek a paritásvizsgálat során.

, , IP , c-

1.5. KIEGESZITO ARAMKOROK ~~

1.5.1. A 1100-as FPLA

Az FPLA elnevezés a Field Programmable Logic Array angol név rövidítése, aminek magyar megfelelöje: a felhasználó által progriunozható logikai áramkör. A programozhatóság ebben az esetben azt jelenti, hogy az IC belső felépítését egy adott feladathoz alakítjuk a chip megfelelő bels5 összekötéseinek "kiégetéséveI". A felhasználó esetünkben a gépet gyártó cég, hiszen ő programozza be az FPLA-t egy adott célra. Végsősoron tehát a PLUS/4-esben lévő 7700-es típusú áramkör egy olyan logikai hálózat, amely helyettesít egy azonos képességű, külön kapukból - IC-kböl - felépített kapcsolást.

Ennek a chipnek a gépben két fontos feladata van:

. adott címeknek megfelelő chip-select-eket elöállítani, . a clI2 órajelet elöállítani.

Vizsgáljuk meg, nogy ez mit is jelent a gyakorlatban. Az FPLA-n~ 12 olyan bemenete van, amelyre címvonal kapcsolódik, ezekböl kódolja ki a CS jeleket, de mivel csak az A4-A15-ös címvonalakat használja, ezért minimálisan 16-os címtartományokat tud csak feldolgozni. Példának okáért ha az $FD10(64784) - $FD1F(64799) címek közül valamelyiket megszólítjuk (írunk rá vagy olvasunk róla). akkor az FPLA F2-e. jelű kimenete (l6-os láb) O szintd lesz, vagyis az U5-ös jelű 6529-es port aktivizálódik, ki lesz választva. A 7700-as a következő szelekciókat végzi el:

 

F2 kimenet (l6-os láb)

Az U5-ös jelű port-áramkör kiválasztása a $FD10j(4784)-$FD1F(64799) címek bármelyikének megszólítása esetén.

FS kimenet (l5-ös láb)

Az ACIA chip-selectje $FDOO(64768)-tól $FDOF(64783)-ig.

F5 kimenet (12-es láb)

A billentyűzet port-áramkörének (U27-6529B) kiválasztó jele, $FD30(64816)-tól $FD3F(64831)-ig terjedő címekre aktivizálódik.

F4 kimenet (l3-8s láb)

A ROM-lapozás címeinek megszólításakor ezen akivezetésen 1 szint jelenik meg (ellentétben az első három jellel). Erről többet a könyv A ROM-ok c. fejezetéből tudhatunk meg.

F6 kimenet (ll-es láb)

Ha ez a kimenet aktív lesz, azonnal belapozódik a KERNAL-ROM (1. A ROM-ok c. fejezetben).

Megjegyzendő, hogy nem mindegyik chipnek kell 16 cím; az U5-ösnek pl. elég lenne egy is, teljesen mindegy, melyik címet szólítjuk meg a 16 közül; így van ez a billentyű-portnál is (Ul9-es IC); az ACIA-nak pedig csak 4 címre van szüksége, tehát a saját címtartományán belül minden negyedik cím megszólításával ugyanazt az eredményt érjük el.

Az FPLA másik funkciója a ~2 órajel előállítása, amely az ACIA áramkörnek kell, de emellett kivezették a cartridge-csatlakozóra is. Ezt az órajelet a ~o-ból állítja elő a 7700-as, a RAS és a MUX jelek segítségével. A ~o és a ~2 órajelek egymáshoz képesti arányát a 10. ábra. szemlélteti.

 

 

1.5.2. A video- és modulátoregység

A számítógéppel való kapcsolatteremtés egyik legfontosabb eszköze a display, vagy ennek hiányában a tv készülék.

A Commodore display a CN7-es (VIDEO feliratú) aljzathoz csatlakoztatható. A csatlakozó kiosztása a 11. ábrán látható.

A csatlakozó 5-ös pontjának különleges szerepe van: az erre a bemenetre vezetett külsó hangjel hallható lesz a display hangszóróján, a PLUS/4-esével összekeverve.

A videocsatlakozón megjelenó színjel (COLOR), világosságjel (LUM) és hangjel (SND) gyakorlatilag megegyezik a TED azonos jeId kivezetéseinek jelével. Az összesített videojel együttesen hordozza a világosság- és a színinformációkat. A display közvetlenül dolgozza fel ezeket a jeleket, ezért a rajta megjelenó kép kiváló felbontású és nagy színtisztaságú.

 

A tv készülék használatához a tv antennáéhoz hasonló jelet szolgáltató modulátoregységre van szükség. A modulátoregység átalakítja az el5bb említett jeleket, s ennek eredményeképpen egyetlen - megfelel5en modulált - nagyfrekvenciás jel jelenik meg a gép R.F. feliratú csatlakozóján. A többszöri jelátalakítás miatt a tv-n látható kép min5sége valamivel rosszabb, mint egy display-é.

 

1.5.3. A tápegység

A Commodore gépcsaládnál megszokott módon a PLUS/4-es tápegysége is egy készüléken kívül lévő külön dobozban helyezkedik el. Kétféle feszültséget szolgaltat az alapgépnek: +5 V-os stabilizált egyenfeszültséget és 9 V-os váltakozófeszültséget.

A mikroszámítógép a belső működéséhez szükséges energiát a +5 V-os tápfeszültségből nyeri. Erről működik az összes integrált áramkör, a tv képet előállító modulátor és a tranzisztoros kiegészítő áramkörök is.

 

A külső dobozban lévő tápegység kapcsolási rajza és a PLUS/4-esen lévő csatlakozó kiosztása 13. ábrán látható.

 

A TR1-es jelű hálózati transzformátor két különá1ló szekunderoldali 9 V-os váltakozófeszültségei közül az egyik közvetlenül jut el a gépbe, a másikból állítja elő a +5 V-os egyenfeszültséget.

A Dl-D4-es diódák által egyenirányított és CK1-es kondenzátorral kiegyenlített nyersfeszültségből az ICi-es (7805-ös típusú) állítja elő a +5,2 V-os stabilizált egyenfeszültséget. A 0,2 V-os feszültségemelést az RK1-es és RK2-es ellenállások beépítésévei érték el a konstruktőrök, amely a terhelés, a vezetéken való feszültségesés és az egyéb tényezők okozta veszteségeket kompenzálája. A gép belsejébe érkező tápfeszültség egy hálózati szűrővel (LINE FILTER) és a Cl-C2-es kondenzátorokkal megszűrve jut el végül az áramkörökhöz.

A 9 V-os váltakozófeszültség a gépen belül még az egyenirányítás előtt átvezették a USER PORT lD-es és ll-es pontjára is. Ez a kb. 1 A-rel terhelhető feszültségforrás alkalmas külső egységek tápfeszültség- ellátására. Egy hasonló célra kialakított +5 V-os tápegység alkalmazásával (amely lehet pl. az ábra szerinti is) elkerülhető az alapgép 5 V-os tápfeszültségének esetleges túlterhelése.

A CR1-es jelű Graetz-híddal egyenirányított, C7-C9-es jelű kondenzátorokkal kiegyenlített és szűrt +9 V-os feszültségből a kazettás magnó motorjának szükséges +6,2 V a Q2-es tranzisztor emitterén (és a magnócsatlakozó 3-as pontjéj.n) jelenik meg abban az esetben, ha a processzorport P3-as vonala az U7-es inverter 4-es kimenetét l-be állítja.

Meg kell még említenünk, hogy a tápegység üzem közben jelentősen melegszik, ezért letakarni, szellőzését akadályozni nem szabad, mert a túlmelegedés meghibásodást okozhat, és a műgyantával részben kiöntött egység nehezen javítható.

1.5.4. A billentyűzet és a botkormány kezelése

A gép billentyűzete a készülék műanyag házának felső részében helyezkedik el. Kivitele viszonylag egyszerű: az egyoldalas nyákon kialakított kontaktusokat a billentyűkön lévő vezetőgumi zárja össze. Egyetlen kivétel van: a SHIFT LOCK funkciót egy beépített kapcsoló látja el. A billentyűzet egy vékony fóliából kialakított csatlakozóval kapcsolódik a PLUS/4-es áramköri nyákjához.

 

Megemlítjük, hogy a bekapcsolt állapotot jelző LED és annak áramkorlátozó ellenállása szintén a billentyűnyákon van, a +5 V-ot és a földet a csatlakozó 4-es és 3-as pontjáró1 kapja.

A billentyűzet logikailag egy 8x8-as mátrixba van rendezve, ennek 8 vonala (sorok) egy 6529B típusú port áramkörhöz csatlakozik (U27-es), 8 vonala pedig (oszlopok) a TED Ko-K7-es vonalaira kapcsolódik (ide csatlakoznak egyébként a joystick-ok vo~alai is). Az egyes billentyűk a sor- és az oszlopvonalak keresztezési pontjain találhatók. A mátrix kiosztását a .14. ábrán láthatjuk.

 

A billentyűzetolvasás folyamata a következő (gépi kódban ajánlott):

...

. Első lépésként egy sort kell megcímezni: az $FD30(64816) címre kell kiírni egy olyan byte-ot, amelyben a vizsgálni kívánt sor bitje van csak O-ban (felhívjuk a figyelmet, hogy az $FD30(64816)- FD3F(64831) címekre történő írás azonos hatású, tehát mindegy, hogy ezek közül melyikre írjuk a sorkiválasztó byte-ot). Az egyes soroknak megfelelő byte-okat szintén feltüntettük az előző ábrán, hexadecimálisan. A beírt byte-ot a 6529B (U27-es) tárolja.

. A TED $FFO8(65288) című regiszterére történő írás hatására a TED beolvassa a $FFO8-as regiszterébe a KO-K7-es vonalak pillanatnyi állapotát. Amennyiben a vizsgált sorban le van nyomva egy billentyű, az O-ba viszi a saját pozíciójának megfelelő oszlopvonalat is. Az $FFO8 regiszterbe beolvasott byte-ban a megfelelő oszlop bit je O értékű lesz, a többi pedig 1.

. A teljes billentyűzetvizsgálathoz ezt a műveletsorozatot minden sorra el kell végezni.

Ha egy billentyű sincs lenyomva a vizsgált sorban, a $FFO8-as regiszterbe beolvasott érték $FF lesz. Ezek alapján a bármely billentyű lenyomására várakozó ciklus egyszerűen megírható:

 

A két botkormány jelei, amelyeket a PLUS/4-eshez csatlakoztathatunk, a CN5-ös és CN6-os aljzatokon keresztü. jutnak be. Ezeket mutatjuk be a 15. ábrán.

 

A csatlakozó formája, kiosztása a nálunk használatos csatlakozóktó1 jelentősen eltér, beszerzése igen' nehéz, esetleg házi gyártmányokkal kísérletezhetünk.

A csatlakozók 1-4-es pontjához kapcsolódnak az irányvonalak (fel, le, balra és jobbra), a 6-oshoz pedig a t\1zgombok jelei.

A vonalakon lévő diódák (CR11-CR20) küszöbölik ki az egymásra hatást. A két botkormány azonos irány jelei a diódák utáni ponton közösítve vannak, és a TED Ko-K3-aS bemeneteire csatlakoznak. A túzgombok egymástó1 függetlenek; az 1-es botkormánye a K6-osra, a 2-esé pedig a K7-esre van kötve.

Egy botkormány érintkezőinek közös pontja a 8-as, ehhez képest kell rövidrezárni a többi vonalat ahhoz, hogy a két botkormány jeleit szoftver úton megkülönböztethessük egymástó1. Amint a kapcsolási rajzon látható, a 8-as ponthoz mindkét csatlakozónál az U4-es (741808) IC egy-egy kapuja csatlakozik, amelyek bemenetükkel a DO-s és a Dl-es adatvonalakra kapcsolódnak. Belátható, hogy ha a botkormány a leírtak szerint van bekötve, érintkezői csak akkor tudják O-ba vinni a TED megfelelő vonalait, ha azok közös pontjára az U4-es adot~kimenetéről (azaz a megfelelő adatvonalró1) O-s szint érkezik. Ezeknek ismeretében a botkormányok olvasása egyszerd: a $FF08-as cÚllre kiírunk egy olyan byte-ot, amelyben csak az olvasni kívánt botkormánynak megfelelő bit van O-ban, majd az $FFO8 regiszter ből kiolvashatjuk a kiválasztott botkormány pillanatnyi állapotát. A tdzgombokat a 6-os és 7-es csatlakoz6pont közé kell kötni (ez utóbbi a földpont) , ekkor ui. egyszerre olvashatjuk őket.

1.5.5. A kazettás magnó

A kazettás magnó a programtárolás alapvető eszköze. A PLUS/4-eshez tartozékként adott Commodore magnó a Datasette, amely gyakorlatilag megegyezik a C 64-es magnójával, az alapgéppel való összekötésre való csatlakozót kivéve. A PLUS/4-es csatlakozójának kiosztását (a gépbe épített csat lakozó

aljzatot) mutatja be a 16. ábra. A csatlakozón levő jeleket már korábban ismertettük (1.2.1. A 7501-es processzor), mivel ezek nagyobbrészt közvetlenül a processzor hoz csatlakoznak. Ehhez kapcsolódóan kell megjegyeznünk, hogy emiatt a sajátos megoldás miatt különösen kell ügyelni arra, hogy bekapcsolt állapotban ne csatlakoztassuk a magnót a géphez, vagy ne bontsuk meg a csatlakozást, ezek a m1Íveletek ui. a 7501-es processzor meghibásodásához vezethetnek.

 

A PLUS /4-es kazettás magnóra küldött jeleinek (amely felvételkor a CST WRT vonalon keresztül jut a magnóba) tipikus jelalakjait láthatjuk a 17. ábrán.

 

A Datasette hiányossága, hogy a kazettán levő programok betöltéskor nem hallhatók. Ennek kiküszöbölésére egyszerű módszer alkalmazható (1. a kapcsolási rajzon az ajánlott átalakítást) a magnóról bejövő jelet a modulátorba juttatva az a tv készüléken hallható lesz. Ilymódon könnyebb megkeresni egy program elejét, ill. beolvasás közben ellenőrizni lehet a felvétel minőségét is, hiszen előfordulhat, hogy a kazettán esetleg sérülések, gyűrődések vannak, amelyek folytonossági hiányt okoznak a mágneses rétegen.

Az átalakítást gondosan végezzük el, ügyelve a helyes bekötésre!

Végezetül a 18. ábrán bemutatjuk a Datasette kapcsolási rajzát, amely az esetleges javításoknál lehet

hasznos segédlet.