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<65>te. Den har 2
|
|||
|
funksjoner; Hovedfunksjonen er lydgenerering, men den inneholder ogs<67> 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 <20> 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<70>ver <20> 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
|
|||
|
<EFBFBD>ker med i verdi.
|
|||
|
|
|||
|
Med andre ord: For <20> scrolle skjermen oppover x antall linjer, legg x til
|
|||
|
verdien som allerede ligger i AY-3-8912's dataport.
|
|||
|
For <20> scrolle skjermen nedover x antall linjer, trekk x fra verdien som
|
|||
|
allerede ligger i AY-3-8912's dataport.
|
|||
|
|
|||
|
---
|
|||
|
26 juni 2001
|
|||
|
Asbj<EFBFBD>rn Djupdal, djupdal@stud.ntnu.no
|
|||
|
|