Neúplná adresace periferií u ZX Spectra
Moderátor: Moderátoři
- forbidden
- Příspěvky: 9442
- Registrován: 14 úno 2005, 00:00
- Bydliště: Brno (JN89GF)
- Kontaktovat uživatele:
Neúplná adresace periferií u ZX Spectra
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.
- Přílohy
-
Kempston Joystick interface.gif- joy2
- (11.68 KiB) Staženo 258 x
-
Kempston Joystick IC.gif- joy1
- (39.27 KiB) Staženo 255 x
-
Interface pro Spectrum Dipra.gif- Dipra
- (13.71 KiB) Staženo 272 x
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...
- forbidden
- Příspěvky: 9442
- Registrován: 14 úno 2005, 00:00
- Bydliště: Brno (JN89GF)
- Kontaktovat uživatele:
Hill píše: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.
forbidden píše: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.
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é.
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.
- forbidden
- Příspěvky: 9442
- Registrován: 14 úno 2005, 00:00
- Bydliště: Brno (JN89GF)
- Kontaktovat uživatele:
lesana87 píše: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?