Kisszámítógép


Túllévén a már elmesélt előző kisszámítógép történetén, komolyabb továbbfejlesztésekre adtam a fejemet. Az előző verzió sok gyermekbetegséggel küszködött. Az átláthatatlan és javíthatatlan drótgubanc helyett egy átlátható jól javítható kontrukciót akartam. Így nem volt kérdés, a legközelebbi számítógépemet nyomtatott áramkörre terveztem.

Itt is megtartottam a 8085ös processzort. Suliban ezt tanultuk részletsen, persze hogy ezt építettem bele. Meg amúgy is tetszett nekem. De már az általa maximálisan címezhető 64kBájt memóriát kapott. Ebbe már ó nagy programokat lehet írni, komolyabb játékokat is. Persze viccesen hagozhat egy 8bites 6MHz-ez géptől a "komoly" játék kifejezés. Pedig szerettem volna videójátékokat is írni rá.

A készülék moduláris. És még jelenleg is csak deszkamodellszerű állapotban van: Én olyan Apple MAC féle monitorral billentyűzettel egybeépített gépet képzeltem volna el végső stádiumként. De erre nem volt már idő. Ez a számítógép az utolsó műveim közé tartozott mielőtt kiléptem a "nagy életbe" ahol már nincs szabadideje az embernek barkácsolni. Vagyis még a mai napig barkácsolok csak egy egész ház összebarkácsolása tán már nem nevezhető szimplán barkács-hobbinak, az már életküldetés része.

Ilyentájabn ismerkedtem meg más processzorokkal. PL PIC meg ATMEL processzorokkal. Az PIC olcsósága miatt tetszett meg, a piac legolcsó mikrokontrollere. Ebből akartam a péztárcámhoz mérhető felbontású képmegjelenítőt megalkotni. Egyszerűen a PIC mikrokontroller három lábát felhasználva az egyik a képszinkron, a másik a sorszinron, harmadik meg a világosságjelet állítaná elő. A világosságjel csak a képpont be illetve kikapcsolására korlátozódna. Egybites színmélység. Ennyi bőven elég lesz nekem egyszerű tetsris szerű játékok írására.

Később szereztem egy FPGA nagysebességű (800MHz) Spartan egységet amiből később lecseréltem volna már színes nagyfelbontású grafikusra a képmegjelenítést. A képcső is megvolt hozzá, egy mini orosz színes képcső amiből lett volna a monitor hozzá. De erre már nem került sor, csak a tetris szerű fekete-fehér megjelenítés valósult meg.

Ekkoriban első PC-met birtokolva azt is kezdtem kiismerni. Kicsit játszottam vele néha DOS-os programokkal, de engemet sokkal inkább a ROM-BIOS sötét gépi titkai érdekeltek jobban. Örömömet abban leltem hogy kinyertem és visszafejtettem a ROM chip tartalmát. Ennek a tudásnak a felhasználásával sikerült a kisszámítógépemhez Winchester perifériát is illeszteni. Erről boot-olódott a már saját magam írta pici operációs rendszer. Pontosan úgy mint az igazi számítógépekben. Elkezdtem egy FAT fájlrendszer olvasó részt is írni a kis OS-embe, de végül nem fejeztem ezt be. Csak nyersen olvasta be az egymás utáni szektorokat és töltötte be a memóriába mindenféle fájl-struktúra nélkül.

A kísérlet csak addig jutott hogy a betöltődő OS automatikusan magával húzta a kis játékomat is a Super Lövő-t és el is indította. Ezt persze valami fájlkezelős indításúra írtam volna meg tovább de ez elmaradt.

A PIC mikrokontroller azon kívül hogy folyamatosan rajzolta a pixeleket a képernyőre egyéb más feladatokat is ellátott, de csak a kép és sorviszafutás idején. Amíg rajzolt ki egy sort a képernyőre, a proci teljes gőzzel a pixelek rajzolásán ízzadt. Amikor a képcső nyalábja visszafutott a sor vagy kép elejére, akkor tudott foglalkozni a winchesterrel, a soros porttal, a hanggenerálással, nyomógombokkal. És a fő perifériájával a 8085-ös processzorral. Betöltéskor a PIC perifériájaként működött a 8085ös processzor. Mivel indláskor a 8085ös processzor RAM memóriájában nincs program, ezért a PIC veszi át az irányítást és egy pici programmal feltölti a 8085 ös rendszer memóriáját. Kb 200bájtos programot küld át. Ezután a PIC és a 8085 között a szerep felcserélődik, és a 8085 programja elindul, a PIC meg vezérlő szerepből átlép periféria szerepbe.

A 8085 a PIC felé kéréseket irányíthat. PL winchestert olvassa ki, írjon, olvasson a soros porton, olvassa be a nyomógombokat, írjon üzenetet az LCD kijelzőre, vagy monitoron pixeleket állítson be, adjon hagot.

Erre egy speciális busz van fenntartva, hogy a hardver kommunikáció lejátszódhasson a két processzor között. A PIC mint egy periféria processzor működik itt, maga a PIC rövidítés is ezt jelentette elsősorban: Peripherial Interface Circuit.

A játék amit írtam rá, egy eygszerű játék, le kell lőni egy mozgó járművet a képernyőn.

Sok ötletem merült fel a továbbfejlesztésére. Különféle perifériákkal bővítettem volna. Mint említettem, színes grafikus kijelzőt akartam volna készíteni hozzá FPGA-ból vagy CPLD-ből. Erre már nem volt időm, el kellett költöznöm otthonról 120km-rel nyugatabbra a fővárosból miután befejeztem az összes sulit és munkába álltam. Azóta meg nem foglalkoztam vele.

szamitogep29.JPG_kk szamitogep30.JPG_kk

És végül vége is lett életem eddigi legbonyolultabb hobbi projektjének,... gondoltam magamban mire kaptam az élettől egy egész házat felújatani/átépíteni a nyakamba...

szamitogep31.JPG_kk szamitogep32.JPG_kk szamitogep33.JPG_kk szamitogep34.JPG_kk

szamitogep35.JPG_kk szamitogep40.JPG_kk szamitogep41.JPG_kk szamitogep42.JPG_kk

Dokumentációk, kapcsolási rajzok:

Előlap

Teendők listája

Operációs rendszer folymatábrája

PIC és I8085 processzorok közötti kommunikáció

PIC és I8085 processzorok közötti kommunikáció

Lövő játék pálya rajzai

Lövő játék pálya rajzai

Lövő játék pálya rajzai

Lövő játék pálya rajzai

PIC16F877A processzor perifériakártyája

PIC16F877A processzor perifériakártyája

I8085 proceszoros központi egység kártyája

I8085 proceszoros központi egység NYÁK rajza (felső)

Központi egység CAD rajzai

Központi egység CAD rajzai

Periféria egység CAD rajzai

Periféria egység CAD rajzai

Központi egység memóriájának bekötése

8085 processzor bekötése

Kártya közi csatlakozók bekötései

PIC16877A proceszzorral megvalósított periféria vezérlő

PIC16877A proceszzoros központi egység

Periféria egység vázlata és a szoftver folyamatábrája

Periféria egység és az LCD kijelző

16 gombos beviteli egység

Teendők listája

Teendők listája és a gombok funkcióterve

A teljes rendszer összeállítása előtti lista

PIC16F84 processzoros fejlesztői kártya (mellékág)

PIC programozó

LCD kijelző bekötése és szoftveres parancsai





By Bognár András (2015)