Lyd og scrolling i TIKI-100 Rev C --------------------------------- TIKI-100 inneholder en AY-3-8912 chip. Dette er en standard lydkrets som finnes i mange andre datamaskiner, bl.a Amstrad CPC og ZX-Spectrum. Siden det finnes mange gode tekster som omhandler programmering av denne kretsen, tar jeg bare med det som gjelder spesielt for TIKI her. AY-3-8912 har 15 registre som kontrollerer kretsens virkemåte. Den har 2 funksjoner; Hovedfunksjonen er lydgenerering, men den inneholder også en 8 bits dataport. Denne dataporten er i TIKI-100 brukt til vertikal scrolling av skjermen. Tilgang til AY-3-8912 skjer gjennom 2 I/O-porter: I/O-port 16H: Lyd og scroll peker For å få tilgang til et av registrene i AY-3-8912, må det aktuelle registernummeret skrives til denne porten. I/O-port 17H: Lyd og scroll data Etter at registernummeret er skrevet til I/O-port 16H, kan data til det aktuelle registeret skrives/leses i denne porten. Hardware scrolling Som nevnt tidligere, benyttes AY-3-8912's dataport (register 14) til vertikal scrolling. Hver gang prosessor eller videokrets prøver å få tilgang til grafikk- hukommelsen, adderes innholdet i denne dataporten multiplisert med 128 til verdien på adressebussen. Hvis f.eks prosessoren skal ha tak i innholdet i adresse 0 i grafikkram, og innholdet i AY-3-8912's dataport er 10, vil prosessoren i stedet få innholdet i adresse 0 + (10*128) MOD 32768 = 1280. Selv om data i grafikkram ikke fysisk skifter plass, vil det i praksis føles som om grafikkram-innholdet hopper oppover like mange linjer som dataportens innhold øker med i verdi. Med andre ord: For å scrolle skjermen oppover x antall linjer, legg x til verdien som allerede ligger i AY-3-8912's dataport. For å scrolle skjermen nedover x antall linjer, trekk x fra verdien som allerede ligger i AY-3-8912's dataport. --- 26 juni 2001 Asbjørn Djupdal, djupdal@stud.ntnu.no