Eliminacia nutnosti pametania si poslednej OUTnutej hodnoty

Ostatné témy, ktoré nepasujú vyššie
Post Reply
Message
Author
Busy
Posts: 317
Joined: Mon Nov 25, 2013 9:11 pm
Location: Bratislava
Contact:

Eliminacia nutnosti pametania si poslednej OUTnutej hodnoty

#1 Post by Busy » Fri May 12, 2017 3:08 pm

Taka myslienka, co ma len tak (mimo cohokolvek ineho) napadla:

Pri zapise na vystupne porty je niekedy nutne zmenit len niektore bity a ine zachovat nastavene tak ako su. Typicky priklad: #FE. Ked chce clovek zapipat, pricom nechce zmenit farbu borderu, jedina moznost je pametat si niekde posledne zapisanu hodnotu, tuto zobrat, odmaskovat stary bit pre reprak, primaskovat novy bit a cele outnut.

A mna napadlo, ze vystupne porty by mohli fungovat nasledovne. Spodnych osem bitov adresy by adresovalo port (ako obvykle), ale hornych 8 bitov adresy by bola maska, ktora urcuje, ktore bity sa OUTom realne zmenia. Ak by takto fungoval port #FE, zvuky na EAR by sa vydavali outovanim na port #18FE, bez vplyvu na farbu borderu. Border by sa zase dal zmenit na porte #07FE bez vplyvu na aktualny stav EARu.

Samozrejme bolo by to pouzitelne len na 8-bitove porty. A prinasalo by to nutnost (vecsinou) port adresovat 16-bitovo. Ale soft by to zjednodusilo, lebo clovek by si (obvykle) nemusel pametat co na port poslal a potom logickymi operaciami selektivne menit iba tie bity co zmenit potrebuje.

Je jasne, ze prerabat existujuce porty (#FE, #7FFD,...) na taketo spravanie nema vyznam kvoli poruseniu kompatibility. Avsak mohlo by to byt pouzitelne pri navrhu nejakej novej periferie, kde sa cez jeden OUT bude nastavovat viac nezavislych veci naraz.

Post Reply