Dyskusja:Programowanie: Detekcja stereo: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
 
Nie podano opisu zmian
Linia 7: Linia 7:
       lda #$03
       lda #$03
       sta $d21f    ;release pokey 1
       sta $d21f    ;release pokey 1
      ldy #$00


       lda $d20a    ;see if pokey 0 is halted ($d20a = $ff)
       lda $d20a    ;see if pokey 0 is halted ($d20a = $ff)
Linia 14: Linia 12:
       inx
       inx
       bne ?loop
       bne ?loop
      ldy #$03
      sty $d20f


       cmp #$ff
       cmp #$ff
       bne ?mono
       bne ?mono


       iny
       inx


?mono lda #$03
?mono ...          ;X=0 - mono
      sta $d20f
                     ;X=1 - stereo
 
      ...          ;Y=0 - mono
                     ;Y=1 - stereo
</pre>
</pre>


? Procedura jest prostsza i krótsza niż u Sebana, oraz nie używa przerwań, ale nie bardzo mam na czym sprawdzić, czy to działa. [[Użytkownik:KMK|KMK]] 16:43, 19 paź 2011 (CEST)
? Procedura jest prostsza i krótsza niż u Sebana, oraz nie używa przerwań, ale nie bardzo mam na czym sprawdzić, czy to działa. [[Użytkownik:KMK|KMK]] 16:43, 19 paź 2011 (CEST)
:EDIT: dalsze skrócenie, do 32 bajtów. Na emulatorze działa. [[Użytkownik:KMK|KMK]] 17:15, 19 paź 2011 (CEST)

Wersja z 19 paź 2011, 17:15

A może dałoby się zrobić to inaczej:

      ldx #$00
      stx $d20f     ;halt pokey 0
      stx $d21f     ;halt pokey 1
      lda #$03
      sta $d21f     ;release pokey 1

      lda $d20a     ;see if pokey 0 is halted ($d20a = $ff)
?loop and $d20a
      inx
      bne ?loop

      ldy #$03
      sty $d20f

      cmp #$ff
      bne ?mono

      inx

?mono ...           ;X=0 - mono
                    ;X=1 - stereo

? Procedura jest prostsza i krótsza niż u Sebana, oraz nie używa przerwań, ale nie bardzo mam na czym sprawdzić, czy to działa. KMK 16:43, 19 paź 2011 (CEST)

EDIT: dalsze skrócenie, do 32 bajtów. Na emulatorze działa. KMK 17:15, 19 paź 2011 (CEST)