Stereo test

Raster/c.p.u. 2005

Stereo rozšíření zvukových možností 8bitového Atari se dá považovat již za standard. Využívá ho většina nově vznikajících demo programů, ale i některé hry.

Na ověření správné funkčnosti sterea jsem si vyrobil jednoduchý testovací prográmek. Vzorem mi byl audio test zvukových karet na vyšších počítačích, který přehrává nasamplované vzorky řeči "Left channel" a "Right channel", což jsem ještě doplnil známou melodií z Atari selftestu.

Po spuštění programu stereots.com se nejprve zobrazí výpis všech POKEY registrů pro oba POKEY čipy (adresové prostory $d200-$d20f a $d210-$d21f). Na základě zjištěných hodnot se pak vypíše status výsledku, jestli je stereo rozšíření detekováno či ne. Pokračovat lze třemi způsoby:

Klávesa "A" - Audio test
Poslechová zkouška. Střídavě pouští sampl řeči a melodii na levém a pravém kanále. Ukončení lze provést klávesou "SPACE".

Klávesa "R" - Retry
Znovu vypíše aktuální stav všech POKEY registrů a výsledek stereo detekce.

Klávesa "ESC" - Quit
Opuštění programu, přechod do DOSu.

Použitá metoda detekce sterea:

pokey1 equ $d200
pokey2 equ $d210

STEREODETEKCE
   lda pokey1+$09
   beq iss2   ;0 => naposled stlaceno L
;nebylo stlaceno L
   lda pokey2+$09
   beq issyes ;0 na druhem POKEY
              ;KEY registru =>je stereo
issno
;NENI STEREO
   lda #0
   rts
iss2
   ldy #7
iss3
   lda pokey2,y ;POT registry
   bne issno    ;nektery je nenulovy
   dey
   bpl iss3
issyes
;JE STEREO
   lda #1
   rts

Vysvětlení metody detekce:

Nejprve je vyhodnocen stav registru $d209 (KBCODE). Pokud je jeho hodnota nulová, znamená to, že posledně byla stlačena klávesa "L" (má keycode 0), tudíž nelze vyvozovat přítomnost sterea na základě nulové hodnoty registru $d219 (KBCODE druhého POKEYe). Proto se v tomto případě dělá prověření stavu všech POT registrů v adresovém prostoru druhého POKEYe. Pouze jsou-li všechny nulové, stereo je zabudováno.