SimCovox: Różnice pomiędzy wersjami

Z Atariki
Przejdź do nawigacji Przejdź do wyszukiwania
Jhusak (dyskusja | edycje)
Nie podano opisu zmian
Jhusak (dyskusja | edycje)
m →Odnośniki: usunięcie duplikatu
 
(Nie pokazano 7 wersji utworzonych przez 2 użytkowników)
Linia 4: Linia 4:
* gniazda DIN 5, w którym linia audio jest podpięta w tym samym miejscu, co w [[Gniazdo_monitorowe#NTSC.2FPAL|gnieździe monitorowym]] Atari
* gniazda DIN 5, w którym linia audio jest podpięta w tym samym miejscu, co w [[Gniazdo_monitorowe#NTSC.2FPAL|gnieździe monitorowym]] Atari
* ośmiu oporników (patrz [http://pl.wikipedia.org/wiki/Covox Covox])
* ośmiu oporników (patrz [http://pl.wikipedia.org/wiki/Covox Covox])
* alternatywnie można użyć Arduino z oprogramowaniem SimCovox zamiast oporników w celu osiągnięcia idealnej 8-bit jakości.


SimCovox jest w zasadzie namiastką "prawdziwego" Covoxa, nie tylko ze względu na mniejszą liczbę kanałów, ale też z powodu użycia portu układu [[PIA]] jako wyjścia danych cyfrowych: otóż rezystory, kondensatory i dławiki znajdujące się na płycie Atari pomiędzy układem PIA a gniazdami joysticka powodują zniekształcenia sygnału cyfrowego i tym samym dźwięku. W praktyce nie ma sensu odtwarzanie sampli z częstotliwością próbkowania powyżej 16000 Hz, bo jakość dźwięku się nie polepszy, a owszem, może się nawet pogorszyć.
SimCovox jest w zasadzie namiastką "prawdziwego" Covoxa, nie tylko ze względu na mniejszą liczbę kanałów, ale też z powodu użycia portu układu [[PIA]] jako wyjścia danych cyfrowych: otóż rezystory, kondensatory i dławiki znajdujące się na płycie Atari pomiędzy układem PIA a gniazdami joysticka powodują zniekształcenia sygnału cyfrowego i tym samym dźwięku. W praktyce nie ma sensu odtwarzanie sampli z częstotliwością próbkowania powyżej 16000 Hz, bo jakość dźwięku się nie polepszy, a owszem, może się nawet pogorszyć.


Póki co, jednym z niewielu posiadaczy SimCovoxów jest [[KMK]], posiadający prototypowy egzemplarz . SimCovox jest wspierany przez [[D2D]] (od wersji 1.4), [[DRUM Machine]], [[PSG Player]] MOVPLAY 2022.
Póki co, jednym z niewielu posiadaczy SimCovoxów jest [[KMK]], posiadający prototypowy egzemplarz . SimCovox jest wspierany przez [[D2D]] (od wersji 1.4), [[DRUM Machine]], [[PSG Player]], oraz [[MOVPLAY]]


W SimCovox wyposażone są też niektóre wersje [[IDE Plus]] rev. D (oznaczone jako rev. S). Ta wersja, oczywiście, nie ma wspomnianych wyżej wad swojego odpowiednika podłączanego przez porty PIA.
W SimCovox wyposażone są też niektóre wersje [[IDE Plus]] rev. D (oznaczone jako rev. S). Ta wersja, oczywiście, nie ma wspomnianych wyżej wad swojego odpowiednika podłączanego przez porty PIA.


W 2022 [[Jakub Husak]] w ramach wieczornego projektu stworzył w celach testowych SimCovox oparty na Arduino (w praktyce Arduino Mini). Zastosowanie mikrokontrolera pozwoliło odtworzyć cyfrowy sygnał z portów joysticków i puścić go poprzez wbudowany przetwornik cyfrowo-analogowy - na wyjściu dostajemy sygnał PWM o częstotliwości bazowej 62.5 KHz.
W 2022 [[Jakub Husak]] w ramach wieczornego projektu stworzył w celach testowych SimCovox oparty na Arduino (w praktyce Arduino Mini). Zastosowanie mikrokontrolera pozwoliło odtworzyć cyfrowy sygnał z portów joysticków i puścić go poprzez wbudowany przetwornik cyfrowo-analogowy - na wyjściu dostajemy sygnał PWM o częstotliwości bazowej 62.5 KHz wraz z perfekcyjną liniowością przetwornika, czyli minimum możliwych zniekształceń cyfrowych.


Adresowanie przetwornika odbywa się przez zapis rejestru wartością próbki:
Adresowanie przetwornika odbywa się przez zapis rejestru wartością próbki:


* $D300 (PORTA) dla urządzenia podłączonego do portów joysticka,
* $D1FB dla IDE+ rev.S,
* $D1FB dla IDE+ rev.S.
* $D300 (PORTA) dla urządzenia podłączonego do portów joysticka.


Aby taki SimCovox działał, trzeba ustawić PORTA do zapisu:
Aby ten ostatni SimCovox działał, trzeba ustawić PORTA do zapisu:


                 lda     #$ff
                 lda #%11111111
                 sta     $d300
                 sta PORTA      ;$D300
                 lda     $D302  
                 lda PACTL      ;$D302
                 and     #$fb
                 and #%11111011
                 sta     $D302
                 sta PACTL
                 lda     #$ff
                 lda #%11111111  ;all output
                 sta     $D300
                 sta PORTA
                 lda     $D302
                 lda PACTL
                 ora     #$4
                 ora #%00000100
                 sta     $D302
                 sta PACTL


Po całej operacji,przy wyjściu z programu trzeba przywrócić domyślny stan PORTA- do odczytu:
Po całej operacji,przy wyjściu z programu trzeba przywrócić domyślny stan PORTA- do odczytu:


                 lda     #$ff
                 lda #%11111111
                 lda     $D302  
                sta PORTA      ;$D300
                 and     #$fb
                 lda PACTL      ;$D302
                 sta     $D302
                 and #%11111011
                 lda     #$00
                 sta PACTL
                 sta     $D300
                 lda #%00000000  ;all input
                 lda     $D302
                 sta PORTA
                 ora     #$4
                 lda PACTL
                 sta     $D302
                 ora #%00000100
 
                 sta PACTL


== Odnośniki ==
== Odnośniki ==


*[[https://github.com/jhusak/atari8_simcovox_arduino_mega328p repozytorium SimCovox Arduino]]
*[https://github.com/jhusak/atari8_simcovox_arduino_mega328p repozytorium SimCovox Arduino]
*[[https://github.com/jhusak/avgcart_avfplay AVFPlay dla AVGCart obsługujący SimCovox]]
*[https://github.com/jhusak/avgcart_avfplay AVFPlay dla AVGCart obsługujący SimCovox]
*[[https://github.com/jhusak/side-sideII-avfplay AVFPlay dla SIDE/SIDE2/Incognito obsługujący SimCovox]]
*[https://github.com/jhusak/side-sideII-avfplay AVFPlay dla SIDE/SIDE2/Incognito obsługujący SimCovox]


[[Kategoria:Peryferia 8-bit]]
[[Kategoria:Peryferia 8-bit]]

Aktualna wersja z 25 lis 2025, 13:38

Prosty, jednokanałowy Covox, zbudowany przez Simiusa w 2011 roku według założeń przedstawionych w tym wątku na Atari Area. Składa się z:

  • dwóch wtyków pasujących do gniazd joysticka, a przeznaczonych do wetknięcia do gniazd nr 0 i 1 (czyli obu w XL i XE, lub dwóch pierwszych w 400/800)
  • gniazda DIN 5, w którym linia audio jest podpięta w tym samym miejscu, co w gnieździe monitorowym Atari
  • ośmiu oporników (patrz Covox)
  • alternatywnie można użyć Arduino z oprogramowaniem SimCovox zamiast oporników w celu osiągnięcia idealnej 8-bit jakości.


SimCovox jest w zasadzie namiastką "prawdziwego" Covoxa, nie tylko ze względu na mniejszą liczbę kanałów, ale też z powodu użycia portu układu PIA jako wyjścia danych cyfrowych: otóż rezystory, kondensatory i dławiki znajdujące się na płycie Atari pomiędzy układem PIA a gniazdami joysticka powodują zniekształcenia sygnału cyfrowego i tym samym dźwięku. W praktyce nie ma sensu odtwarzanie sampli z częstotliwością próbkowania powyżej 16000 Hz, bo jakość dźwięku się nie polepszy, a owszem, może się nawet pogorszyć.

Póki co, jednym z niewielu posiadaczy SimCovoxów jest KMK, posiadający prototypowy egzemplarz . SimCovox jest wspierany przez D2D (od wersji 1.4), DRUM Machine, PSG Player, oraz MOVPLAY

W SimCovox wyposażone są też niektóre wersje IDE Plus rev. D (oznaczone jako rev. S). Ta wersja, oczywiście, nie ma wspomnianych wyżej wad swojego odpowiednika podłączanego przez porty PIA.

W 2022 Jakub Husak w ramach wieczornego projektu stworzył w celach testowych SimCovox oparty na Arduino (w praktyce Arduino Mini). Zastosowanie mikrokontrolera pozwoliło odtworzyć cyfrowy sygnał z portów joysticków i puścić go poprzez wbudowany przetwornik cyfrowo-analogowy - na wyjściu dostajemy sygnał PWM o częstotliwości bazowej 62.5 KHz wraz z perfekcyjną liniowością przetwornika, czyli minimum możliwych zniekształceń cyfrowych.

Adresowanie przetwornika odbywa się przez zapis rejestru wartością próbki:

  • $D1FB dla IDE+ rev.S,
  • $D300 (PORTA) dla urządzenia podłączonego do portów joysticka.

Aby ten ostatni SimCovox działał, trzeba ustawić PORTA do zapisu:

               lda #%11111111
               sta PORTA       ;$D300
               lda PACTL       ;$D302
               and #%11111011
               sta PACTL
               lda #%11111111  ;all output
               sta PORTA
               lda PACTL
               ora #%00000100
               sta PACTL

Po całej operacji,przy wyjściu z programu trzeba przywrócić domyślny stan PORTA- do odczytu:

               lda #%11111111
               sta PORTA       ;$D300
               lda PACTL       ;$D302
               and #%11111011
               sta PACTL
               lda #%00000000  ;all input
               sta PORTA
               lda PACTL
               ora #%00000100
               sta PACTL

Odnośniki