Pořídil jsem si ZX Spectrum, víceméně na hraní, než na nějaký hloubání nad historickou architekturou. Potřebuju si k němu ale udělat rozhraní na joystick, to by sám o sobě nebyl problém, schémat je všude dost. Ale mate mě, že se často mluví o neúplné adresaci. Co to přesně je a proč se používá? Zběžně jsem se díval, že Z80 má 16 b adresovou sběrnici, to je podle mě prostoru až až, aby se nemuselo šetřit s adresama periferií.
Obkreslil jsem si schéma rozhraní Dipra, co tu mám, to má údajně neúplnou adresaci a pak jsem na netu vybral dvě zapojení s úplnou adresací. Jedno z toho bych asi udělal. Žádný z nich ale nepoužívá 8 b adresu a přesto mají údajně plnou adresaci. Podle mě by tam těch adresových vstupů mělo být víc a reagovat až na úplnou adresu. Může mi to někdo trochu objasnit?
Díky.
Založen: Mar 30, 2012 Příspěvky: 3571 Bydliště: Havířov
Zaslal: pá leden 06 2017, 19:59 Předmět:
Je to jenom kvůli jednoduchosti. Myslím, že Z80 adresuje periferie osmi bity. Takže pokud se mluví o úplné adresaci, myslí se asi jen těch 8 bitů. Vůbec bych to neřešil, 256 periferií je přece dost.
Založen: Feb 14, 2005 Příspěvky: 8978 Bydliště: Brno (JN89GF)
Zaslal: pá leden 06 2017, 20:18 Předmět:
Určitě je to dost, ale proč tomu teda říkají full adress decoding, když očekávají log 0 pouze na A5, A6 a A7 v lepším případě, v horším pouze na A5. Vždyť to může kolidovat se spoustou jiných adres.
Založen: Sep 10,
2004 Příspěvky: 19537 Bydliště: Jičín, Český ráj
Zaslal: pá leden 06 2017, 20:47 Předmět:
To je ale seznam všech periferií všech verzí Spectra včetně Pluska 128k a speciálních periferií potřebných pro komunikaci s ZX Microdrive a ZX Printer, tříplusjednokanálovým generátorem zvuku a šumů, jako byl ZX Interface nebo disketové řadiče Dataputer, z nichž některé obsahovaly další paměťovou banku, generátor zvuků, MIDI rozhraní a kdo ví, co ještě.
Verze se lišily především obvodem ULA podle televizní normy, pro kterou byly určené, v našich končinách to byla ISSUE TWO.
Původní ZX Spectrum například četlo Sinclair joystick na stejných adresách, na nichž četlo z klávesnice kurzory a tuším nulu. To neúplné dekódování mělo výhodu v tom, že po nevyužívaných bitech sběrnice mohlo probíhat něco jiného (například v době snímkového intervalu, kdy ULA nezobrazovala obsah videoram, se po horních třech adresních bitech posílal stav obsah registru přerušení).
Jo, kdybych si tak všechno pamatoval...
Jinak, Z80 umí adresovat periferie 16-bitově. Při použití instrukcí in r,(C) / out (C),r je na horní polovinu adresy použit registr B a na dolní C. Při použití instrukcí in A,port / out port,A je na horní polovinu adresy použit samotný registr A a na dolní hodnota port. Instrukce in A,port se teda dá použít libovolně na 16-bitové adresování periferií, instrukce out port,A jen omezeně. Instrukce pro blokový přenost z/do periferie používají pro adresaci také pár BC, ale zároveň používají B jako počítadlo bytů, takže použití pro 16-bitově adresované periferie je ještě omezenější.
Založen: Feb 14, 2005 Příspěvky: 8978 Bydliště: Brno (JN89GF)
Zaslal: pá leden 06 2017, 21:13 Předmět:
Hill napsal(a):
To neúplné dekódování mělo výhodu v tom, že po nevyužívaných bitech sběrnice mohlo probíhat něco jiného (například v době snímkového intervalu, kdy ULA nezobrazovala obsah videoram, se po horních třech adresních bitech posílal stav obsah registru přerušení)
Takže je docela dobře možný, že kdybych opravdu trval na úplné osmibitové adrese třeba toho Kempston joysticku (0x1F), tak by mohlo docházet ke kolizím, nebo by se spíš port nepřečetl nikdy.
Jinak já mám ISSUE 3, ale vyřadil jsem hned modulátor a použil kompozitní signál.
Takže je docela dobře možný, že kdybych opravdu trval na úplné osmibitové adrese třeba toho Kempston joysticku (0x1F), tak by mohlo docházet ke kolizím, nebo by se spíš port nepřečetl nikdy.
Adresa na sběrnici bude přeci pořád stejná, takže adresní vodiče na které periferie reaguje budou mít stejnou hodnotu a ostatní jsou jí jedno, a u ostatních periferií není důvod, aby začly reagovat na adresu, na kterou nereagovaly.
Založen: May 13, 2009 Příspěvky: 4996 Bydliště: BA-Petržalka :(
Zaslal: pá leden 06 2017, 22:25 Předmět:
V jednoduchosti: napríklad Kempston joystick používa port 31, neúplnú adresáciu. Teda signály zbernice A0 až A7 udávajú číslo 31. Signály A8 až A15 sa nepoužívajú, teda sa ignoruje ich stav. Takže logicky tým blokuje peknú časť zbernice (256 portov), nielen vstup 31. Keď napríklad načítam port 2079, je to zase len port 31, lebo A0 až A7 mi udáva číslo 31. Binárne asi takto: xxxxxxxx 00011111. Interface sleduje len A0 až A7 (A8 až A15 sa ignoruje), a keď je tam 31 (plus signál IORQ a ešte neviem čo), tak vyšle D0 až D7. To už som písal, nie?
Spectrum 128KB používa úplnú adresáciu portov na stránkovanie pamäte.
edit: Kempston a úplná adresácia. To by nešlo, napríklad hry čítajú port 31 (IN 31), ale v A registry môže byť predtým čokoľvek. Pri úplnej adresácii by tam muselo byť vždy 0, aby to čítalo PRESNE port 31.
edit2: tak teraz neviem, asi som napísal blud. Najlepšie je sa pozrieť do schémy zapojenia Didaktik M, ako je to vlastne zapojené a teda aj adresované. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Naposledy upravil PotPalo dne pá leden 06 2017, 22:35, celkově upraveno 1 krát.
Založen: Jun 05, 2005 Příspěvky: 12335 Bydliště: Ostrava
Zaslal: pá leden 06 2017, 22:34 Předmět:
Pokud si vzpomínám, tak opravdu "plný dekodér" používal pouze /IORQ, A5, A6, A7 a RD a WR. Některé joystickové interface - třeba Cheetah - používaly pouze IORQ a A6, dokonce ani RD nedetekovaly. Na nějaké datové kolize výrobci často kašlali a fungovalo to, pochopitelně pokud nebyla použita žádná další periferie. _________________ Curvetraceristé všech zemí spojte se!
Založen: May 13, 2009 Příspěvky: 4996 Bydliště: BA-Petržalka :(
Zaslal: pá leden 06 2017, 22:39 Předmět:
Keď to detekovalo iba A5, tak to obsadzovalo 32768 portov, no nádhera. To potom bolo ťažké sa netrafiť
Ešte že klávesnica mala vlastnú adresnú zbernicu.
Ešte doplním, že keď nebol na Didaktiku kempston interface a čítal sa port 31, výsledkom bolo náhodné číslo (teda náhodne prečítané zo SCREEN pamäti). To potom v hre behali postavičky sami. Na tomto princípe je detektor kempston joysticku: obrazovka sa zaplní napríklad #ff, prečíta sa niekoľko krát port 31, a keď je tam #ff, tak joystick nieje pripojený a treba ho v hre vypnúť. O synchronizácii obrazovky pomocou portu 255 ani nehovorím, na spectre to fungovalo, ale u didaktiku to nebolo zapojené a buď to blikalo, alebo hra zamrzla a vôbec nešla. _________________ Silou vybrať peniaze od ľudí a následne za ne spraviť niečo proti ľuďom, s čím nesúhlasia, to je civilizácia?! Tento systém je chorý a vedie do záhuby.
Ideológie developerov niesu kompatibilné so šťastným životom.
Založen: Feb 14, 2005 Příspěvky: 8978 Bydliště: Brno (JN89GF)
Zaslal: pá leden 06 2017, 23:29 Předmět:
lesana87 napsal(a):
Adresa na sběrnici bude přeci pořád stejná, takže adresní vodiče na které periferie reaguje budou mít stejnou hodnotu a ostatní jsou jí jedno, a u ostatních periferií není důvod, aby začly reagovat na adresu, na kterou nereagovaly.
Já to myslel tak, že pokud by periferie očekávala opravdu 0x1F (00011111), ale software by poslal na adresní sběrnici jen 000XXXXX, protože očekává, že periferii stačí A5 v log 0 a případně to RD a IORQ a ty A0-A4 využívá na jiný věci jak psal Hill, tak by to moje trvání na plné adresaci bylo vlastně kontraproduktivní. Je v tom pěknej bordel se mi zdá.
Časy uváděny v GMT + 1 hodina Jdi na stránku 1, 2Další
Strana 1 z 2
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru. Nemůžete připojovat soubory k příspěvkům Můžete stahovat a prohlížet přiložené soubory
Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.