ISA kártya


Ez a kártya az első mikroszámítógépemhez építettem [link]. Eleinte ezt a kis számítógépemet mindenféle külső hardver meg egyéb nélkül is tudtam programozni. Persze sziszifuszi munka árán, kis ceruzaszerű eszközzel bepötyögve bitenként. Ez igen hosszadalmas időigényes dolog volt. Papírra kellett megírni a program kódot assembly-ben amit utánna mellé kézel fordítottam le gépi kódra és utánna azt bitenként bepötyögtem a gépbe. Utánna lefuttathattam. Hát ezek a pár soros mini programocskák egy villanás alatt lefutottak ahoz képest hogy mennyi időt szenvedtem velük.

Amikor elkezdtem építeni ezt a kis számítógépemet, nem volt rendes PC-m. Apámnak volt egy de csak igen korlátozottan fértem hozzá, csak a suliban tudtam hosszabb ideig gépidőt nyerni. Gondoltam építek egy számítógépet magamnak amit programozgatok majd. Közben persze lett egy 486-os számítógépem (Pentium4-es korszakban) (Nem kiröhögni a szegénységemet!)(És hiába van csilivili Ájpadod nem ismered olyan szinten a működését mint én hehe).

És ekkor építettem hozzá ezt az ISA kártyát bele amivel a kis számítógépemet fel tudtam programozni. Ekkor már DOS alatt futtathattam különféle szövegszerkesztőket amiben megírtam a már sokkal hosszabb kódjaimat assemblyben és már volt hozzá fordítóprogramom, azaz assemblerem. Ehhez írtam magam egy hardver drivert meg egy azt használó letöltö programot, ami le is töltötte a lefordított gépi kódot a mikro gépemre.

Az ISA busz vezérlése egyátalán nem bonyolult. A kártyát valami magas periféria címre tettem valahová 3C00H hexa címre, ahova nem volt már semmilyen gyári hardver becímezve.

A kártyán magán igen egyszerű a koncepció: Figyeli az ISA buszon megjelenő címeket, és csak erre a megadott címere reagál, ha szólítja őt a processzor. És ekkor egy 16 bites regisztert beírhat vagy visszaolvashat a processzor.

A feladatot igaz, megoldhattam volna sima gyári printer azaz nyomtató porton át is, de ott nem volt elég bit (csatlakozóláb) a feladat megoldásához.

A mikroszámítógépem 2Kbájtos RAM-ját írtam be ezzel az ISA kártyával illetve olvastam vissza elemzés céljából. A kártya kinullázta a memória melletti számlálókat, így a csupa nullás címre mutatott az. Ezek után a memóriát beírtam a 8bites adatokkal, és a számlálót léptettem egyet. A léptetés egy lökőimpulzussal történt amit a kártya adott ki a kisszámítógépnek. Így végigcímeztem mind a 2048 rekeszét a kisszámítógépem memóriájának. És be is írtam a megfelelő adatokat, azaz az imént fordított gépi kódot. Ezután már csak lefuttattam a programot.

Sokkal hatékonyabban tudtam így programot fejleszteni a kis gépemre. El is kezdtem egy kis játékot fejleszteni rá. A Super Lövő-t. Közben fejlesztettem serényen a kis gépem hardverét. Tettem bele videó részt is, azaz egy primitív videójel generátort a játékhoz. Meg hangot generálót is. És gombokat is, összesen 4 gombot a játék vezérléséhez.

Sajnos a harvert sikerült annyira túlbonyolítanom, hogy egyszer csak valami tönkre ment benne. meg sokszor előfordult hogy valamelyik hardver zavarta a másikat, és emiatt pl. nem íródott be a memóriába az amit szerettem volna. Az egészet végülis feladtam annyi hibával küzködött. Ráadásul teljesen meghalt az egész hardver és leállt működni. Ebben a drótgubancban képtelen bármit is megtalálni vagy javítani avgy cserélni. Feladtam

Az egészet átépítettem nyomtaott áramkörre, de nem csak átpítettem hanem továbbfejlesztettem sokkal jobbra. Itt már működött a megírt játékom. Mai napig működik is. De ez már egy másik történet

Dokumentációk, kapcsolási rajzok:

ISA kártya terv 486-os számítógépbe

ISA kártya tervek

ISA kártya további tervei





By Bognár András (2015)