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 virkemte. 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 prver  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 fles 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
Asbjrn Djupdal, djupdal@stud.ntnu.no

