47 lines
1.8 KiB
Plaintext
47 lines
1.8 KiB
Plaintext
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
|
|
|