Dyskusja:Programowanie: Detekcja stereo
From Atariki
(Różnice między wersjami)
Wersja z dnia 14:43, 19 paź 2011 KMK (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 15:15, 19 paź 2011 KMK (Dyskusja | wkład) Next diff → |
||
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 | + | |
- | sta $d20f | + | |
- | ... ;Y=0 - mono | + | ?mono ... ;X=0 - mono |
- | ;Y=1 - stereo | + | ;X=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 dnia 15:15, 19 paź 2011
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)