A topikját érdemes átnézni
Megtettem, de mint a valodi eletben, nezek, de nem latok
Koszi. Na megneztem. Hat sok ujdonsag nincs, fokent az U27 jelu IC-re epul ra, annak bementeit az AVR B portjara koti. Gondolom tehat az AVR B port az mindig output, es ott nyomja ki h a kivalasztott scannelendo sorban mi az eredmeny az EP szamara. Az U27 bemenetei kozvetlenul az EP adatbuszara csatlakozik, ennek also 4 bitje kapcsolodik az AVR-re. Az egyeduli "idegen" (nem U27-hez megy) jelnek az U25 11-es laba tunik ami ugye a /WR0. Valoszinu, ez triggereli arra az AVR-t hogy nezze mar meg mi van az adatbusz (also 4 bitjen), es kivalasztja igy a scannelendo matrix sort. Az mondjuk erdekes, hogy ez utobbi jel az AVR-en a PD3 nevu labra kapcsolodik, ami amugy egyben az egyik interrupt bemenet is az AVR szamara.
Szoval, ezek utan en azt tippelem, hogy a kerdeses AVR programjat amugy nem ismerve, pl a kovetkezo lehetett a mukodese: van 10 byte az AVR RAM-jaban ez az "emulalt" bill matrix allapota az egyes bitekre vetitve. Ha a /WR0 aktiv, interrupt-ot general AVR-en, ami aztan a Z80 D0-D3 segitsegevel megadott X-edik byte-jat ki-out-olja az AVR B portjara. A PS/2 szorakozasnal meg gondolom van egy tablazat a programban, hogy melyik scan kod hanyadik byte melyik bitjet (vagy inkabb mask-al megadva) allitja.
Ezek utan persze az egyeduli kerdes pl az, hogy eleg gyors-e az AVR ahhoz, hogy elkapja a /WR0 altal okozott interrupt-ot. Ez azert is erdekes, mert meg azon ido alatt kell olvasnia a D0-D3-at, amig a Z80 kinn tartja a buszon a cimet. Szoval az AVR interrupt elfogadasa, es akozott, hogy beolvassa az AVR D portjat (azt ertelmezni kicsit tobb ideje is van, eleg ha az ertek megvan ...) nem telhet el tobb ido, amig a Z80 buszon kint van a 0xB4 portra irando ertek. Hacsak nincs az AVR-ben valami olyan feature, hogy automatice latch-eli az input-ot (nem tudom van-e, hogy oszinte legyek). A masik timing ciritical cucc nyilvan az, hogy max 11 (?) Z80 orajel ciklusnyi ido alatt a B porton neki prezentalnia kell mar az uj kbd sor-ra jellemzo adatokat, de szerintem az mar kevesbe necces, ha mar itt vagyunk az interrupt-on belul (ha most at vesszuk, hogy AVR fut mondjuk 16MHz-en az a Z80 4-szerese, szoval a 11 Z80 orajelciklus 44 AVR ciklust jelent). Nekem tenyleg csak az ut szoget a fejembe, hogy az elso lepeshez eleg gyors-e az AVR, a masodik mar nem gond.