Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Neúplná adresace periferií u ZX Spectra
Jdi na stránku 1, 2  Další
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další)
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
forbidden



Založen: Feb 14, 2005
Příspěvky: 8978
Bydliště: Brno (JN89GF)

PříspěvekZaslal: pá leden 06 2017, 19:21    Předmět: Neúplná adresace periferií u ZX Spectra Citovat

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.



Interface pro Spectrum Dipra.gif
 Komentář:
Dipra

Stáhnout
 Soubor:  Interface pro Spectrum Dipra.gif
 Velikost:  13.71 kB
 Staženo:  226 krát


Kempston Joystick IC.gif
 Komentář:
joy1

Stáhnout
 Soubor:  Kempston Joystick IC.gif
 Velikost:  39.27 kB
 Staženo:  208 krát


Kempston Joystick interface.gif
 Komentář:
joy2

Stáhnout
 Soubor:  Kempston Joystick interface.gif
 Velikost:  11.68 kB
 Staženo:  206 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Kremik



Založen: Mar 30, 2012
Příspěvky: 3571
Bydliště: Havířov

PříspěvekZaslal: pá leden 06 2017, 19:59    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
forbidden



Založen: Feb 14, 2005
Příspěvky: 8978
Bydliště: Brno (JN89GF)

PříspěvekZaslal: pá leden 06 2017, 20:18    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Hill
Administrátor


Založen: Sep 10, 2004
Příspěvky: 19535
Bydliště: Jičín, Český ráj

PříspěvekZaslal: pá leden 06 2017, 20:22    Předmět: Citovat

Když navrhovali ZX Spectrum, nikoho nenapadlo, že by se k němu připojovalo víc, než nějakých 8 periferií, tak nebylo třeba víc řešit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: pá leden 06 2017, 20:25    Předmět: Citovat

Tady je seznam různých periferií a adresy, na které reagují. http://www.worldofspectrum.org/faq/reference/ports.htm
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
forbidden



Založen: Feb 14, 2005
Příspěvky: 8978
Bydliště: Brno (JN89GF)

PříspěvekZaslal: pá leden 06 2017, 20:33    Předmět: Citovat

OK, dík za ten seznam, prostuduju to. Třeba časem Spectrum využiju i k něčemu užitečnýmu. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Hill
Administrátor


Založen: Sep 10, 2004
Příspěvky: 19535
Bydliště: Jičín, Český ráj

PříspěvekZaslal: pá leden 06 2017, 20:47    Předmět: Citovat

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...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: pá leden 06 2017, 20:48    Předmět: Citovat

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ší.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
forbidden



Založen: Feb 14, 2005
Příspěvky: 8978
Bydliště: Brno (JN89GF)

PříspěvekZaslal: pá leden 06 2017, 21:13    Předmět: Citovat

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
lesana87



Založen: Sep 20, 2014
Příspěvky: 3328

PříspěvekZaslal: pá leden 06 2017, 21:27    Předmět: Citovat

forbidden napsal(a):
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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Kremik



Založen: Mar 30, 2012
Příspěvky: 3571
Bydliště: Havířov

PříspěvekZaslal: pá leden 06 2017, 22:06    Předmět: Citovat

lesana87 napsal(a):
Jinak, Z80 umí adresovat periferie 16-bitově.

Aha, děkuju, ještě že Tě tu máme. Dobrý procesorek.. Jenom škoda, že ten čas tak letí.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
PotPalo



Založen: May 13, 2009
Příspěvky: 4992
Bydliště: BA-Petržalka :(

PříspěvekZaslal: pá leden 06 2017, 22:25    Předmět: Citovat

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? Smile

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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
Sendyx



Založen: Jun 05, 2005
Příspěvky: 12335
Bydliště: Ostrava

PříspěvekZaslal: pá leden 06 2017, 22:34    Předmět: Citovat

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!
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
PotPalo



Založen: May 13, 2009
Příspěvky: 4992
Bydliště: BA-Petržalka :(

PříspěvekZaslal: pá leden 06 2017, 22:39    Předmět: Citovat

Keď to detekovalo iba A5, tak to obsadzovalo 32768 portov, no nádhera. To potom bolo ťažké sa netrafiť Laughing
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. Laughing 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.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
forbidden



Založen: Feb 14, 2005
Příspěvky: 8978
Bydliště: Brno (JN89GF)

PříspěvekZaslal: pá leden 06 2017, 23:29    Předmět: Citovat

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á.

Nebo Hill myslel nevyužívaný bity A8-A15?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Miniaturní počítače (Arduino, Raspberry a další) Časy uváděny v GMT + 1 hodina
Jdi na stránku 1, 2  Další
Strana 1 z 2

 
Přejdi na:  
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

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

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.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.18 sekund