Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Wikipedysta:Valdi74/brudnopis - Wikipedia, wolna encyklopedia

Wikipedysta:Valdi74/brudnopis

Z Wikipedii

Układ scalony AY-3-8912, obudowa DIP 28-pin
Układ scalony AY-3-8912, obudowa DIP 28-pin

General Instrument AY-3-8910 to 3-kanałowy programowalny generator dźwięku zaprojektowany przez firmę General Instrument, początkowo do współpracy z ich 16-bitowym procesorem CP1610 lub z jednym serii 8-bitowych mikrokomputerów PIC1650. Układ 8910 i jego warianty stały się popularnymi elementami automatów do gry, m.in. konsol do gier wideo Intellivision i Vectrex oraz mikrokomputerów MSX, Atari ST, Amstrad CPC, Oric 1, Colour Genie, Elektor TV Games Computer i Sinclair ZX Spectrum 128/+2/+3, a także kart dźwiękowych Mockingboard do komputerów z rodziny Apple II. Do starszych modeli ZX Spectrum oraz ZX Spectrum+ dostępne były karty rozszerzeń instalowane na szynie krawędziowej komputera oparte o ten układ. Przystawki te były chętnie kupowane przez właścicieli tych mikrokomputerów z uwagi na ubogie możliwości dźwiękowe standardowych wersji. Układ był także produkowany na licencji przez firmę Yamaha (z drobnymi modyfikacjami) jako YM2149. Układy nie są już produkowane ale ciągle zmniejszający się zapas jest nadal dostępny w serwisach maszyn z tamtego okresu. Został stworzony opis VHDL, który może zostać użyty do otworzenia automatów do gier lub maszyn wspomnianych wyżej. Kod źródłowy VHDL jest dostępny w internecie i po skompilowaniu wypełnia około 10% układu Xilinx XC2S300 FPGA.

Spis treści

[edytuj] Opis

Układ 8910 jest w istocie automatem stanowym, posiadającym generator obwiedni, który jest konfigurowany za pomocą szesnastu 8-bitowych rejestrów. Rejestry te można programować poprzez 8-bitową szynę, która pełni rolę zarówno szyny danych jak i szyny adresowej (w zależności od ustawienia odpowiedniego sygnału sterującego na wejściu układu). Przykładowo, typowy cykl programowania układu polega na przełączeniu szyny w tryb adresów i wybraniu rejestru do zapisu. Następnie szyna przełączana jest w tryb danych i właściwe informacje przesyłane są do wybranego wcześniej rejestru.

[edytuj] Warianty układu

Układ 8910 był sprzedawany w 3 różnych rodzajach obudów.

Wersja AY-3-8910 posiada dwa porty równoległe We/Wy ogólnego przeznaczenia (oznaczane jako A i B) i jest dostępna w obudowie 40-pin.

Model AY-3-8912 jest tym samym układem, dostępnym w obudowie 28-pin z portem B niepodłączonym do żadnych wyprowadzeń. Ta wersja była najbardziej rozpowszechniona.

Model AY-3-8913 jest tym samym układem, dostępnym w obudowie 24-pin. W tej wersji oba porty równoległe A i B nie były wyprowadzone na zewnątrz układu. Niewielka redukcja liczby wyprowadzeń w stosunku do modelu 8912 czyniła go mniej interesującym.

Model YM2149 posiadał taki sam rozkład wyprowadzeń jak AY-3-8910 z tą różnicą, iż pin 26 mógł służyć do dzielenia na pół częstotliwości taktowania układu (w przypadku gdy pin był wysterowany niskim poziomem sygnału). W przypadku niepodłączania pinu 26, YM2149 mógł zastępować układ AY-3-8910, częstotliwość taktowania pozostawała w takim przypadku niezmieniona.

[edytuj] Opis rejestrów

Poniższa tabela zawiera opis rejestrów układów z rodziny AY-3-8910:

Rejestr Funkcja Liczba bitów (Zakres)
0 Wysokość tonu w kanale A (mniej znaczące bity) 8-bit (0-255)
1 Wysokość tonu w kanale A (bardziej znaczące bity) 4-bit (0-15)
2 Wysokość tonu w kanale B (mniej znaczące bity) 8-bit (0-255)
3 Wysokość tonu w kanale B (bardziej znaczące bity) 4-bit (0-15)
4 Wysokość tonu w kanale C (mniej znaczące bity) 8-bit (0-255)
5 Wysokość tonu w kanale C (bardziej znaczące bity) 4-bit (0-15)
6 Częstotliwość (wysokość) szumu 5-bit (0-31)
7 Rejestr sterujący (mikser) 8-bit (0-255, uwagi poniżej)
10 Poziom głośności w kanale A 5-bit (0-15, uwagi poniżej)
11 Poziom głośności w kanale B 5-bit (0-15, uwagi poniżej)
12 Poziom głośności w kanale C 5-bit (0-15, uwagi poniżej)
13 Czas obwiedni (mniej znaczące bity) 8-bit (0-255)
14 Czas obwiedni (bardziej znaczące bity) 8-bit (0-255)
15 Rodzaj obwiedni 4-bit (0-16)
16 Port "A" (We/Wy) 8-bit (0-255)
17 Port "B" (We/Wy) 8-bit (0-255)

Uwagi:

  • rejestry 10, 11 i 12 są 4-bitowe z punktu widzenia sterowania głośnością, natomiast 5 bit w tych rejestrach pełni funkcję sterującą. Jeśli jest ustawiony, to odpowiedni kanał używa obwiedni określonej w rejestrze 15. Głośność zdefiniowana na bitach 0-3 jest w tym przypadku ignorowana.
  • funkcje poszczególnych bitów w rejestrze sterującym (nr 7):
    • bit 7 - określa czy port "B" pracuje jako wejście (0) czy wyjście (1)
    • bit 6 - określa czy port "A" pracuje jako wejście (0) czy wyjście (1)
    • bit 5 - określa czy kanał C ma odtwarzać szum (0 = tak)
    • bit 4 - określa czy kanał B ma odtwarzać szum (0 = tak)
    • bit 3 - określa czy kanał A ma odtwarzać szum (0 = tak)
    • bit 2 - określa czy kanał C ma odtwarzać ton (0 = tak)
    • bit 1 - określa czy kanał B ma odtwarzać ton (0 = tak)
    • bit 0 - określa czy kanał A ma odtwarzać ton (0 = tak)
  • nazewnictwo bitów w rejestrze nr 13, który jest odpowiedzialny za rodzaj obwiedni przedstawia się następująco:
    • bit 0 - Hold
    • bit 1 - Alternate
    • bit 2 - Attack
    • bit 3 - Continue

Graficzne odwzorowanie obwiedni oferowanych przez układ w zależności od poszczególnych bitów w rejestrze 13 ("x" oznacza, że wartość bitu jest dowolna):

Bity Kształt obwiedni
3 2 1 0
0 0 x x Grafika:AY_3_8910_obwiednia_00xx.png
0 1 x x Grafika:AY_3_8910_obwiednia_01xx.png
1 0 0 0 Grafika:AY_3_8910_obwiednia_1000.png
1 0 0 1 Grafika:AY_3_8910_obwiednia_00xx.png
1 0 1 0 Grafika:AY_3_8910_obwiednia_1010.png
1 0 1 1 Grafika:AY_3_8910_obwiednia_1011.png
1 1 0 0 Grafika:AY_3_8910_obwiednia_1100.png
1 1 0 1 Grafika:AY_3_8910_obwiednia_1101.png
1 1 1 0 Grafika:AY_3_8910_obwiednia_1110.png
1 1 1 1 Grafika:AY_3_8910_obwiednia_01xx.png

[edytuj] Niekonwencjonalne zastosowania

2DO:przetłumaczyć

Jakkolwiek układ nie był zaprojektowany do obsługi próbek cyfrowych (sampli zapisanych w postaci PCM), efekt ten może zostać zasymulowany.

Although the chip wasn't designed to handle raw PCM data (digital samples), the effect could be simulated. The chip used a simple OR based mixing function for combining noise and tone on its three channels and could be persuaded to produce a level non-zero wave. By altering the volume this level wave could be shaped into a waveform. Obviously, this involved more CPU usage than chips designed for this purpose (such as the MOS Technology 8364 "Paula" as used in the Commodore Amiga), but it was nevertheless a technique widely used on platforms such as the Atari ST to play sampled music, and on the Amstrad CPC to play short audio samples, in some games.

Doing the same thing fewer times per second (in the order of a hundred per second) can replace the limited envelope functionality (any envelope you can think of), and last but not least works with each of the three channels individually. This takes negligible CPU power (provided there is some timer interrupt or vertical blank interrupt) and can be used in games.

In turn, the now useless envelope functionality can be set to very high frequency, actually generating a waveform that is not the usual squarewave. The granularity by which high frequencies can be set however is low, and so music composed for the chip generally uses this technique only for bass lines.

Another method was to set one channel output to idle high, then use the volume control as a simple logarithmic 4-bit Digital-to-Analog Converter. This however resulted in poor audio quality, because it only had 16 output levels and these were logarithmically spaced.

A more sophisticated method was to use all three channels wired together, and exploit the non-linearity of the mixing to produce many intermediate output levels. Having modeled the non-linearity of the three channels, developers had to find suitable values by exhaustive search. Having done so, they produced an 8-bit to 3x4-bit lookup table. This allowed 8-bit audio samples to be played fairly adequately, though not as well as a real 8-bit D/A converter. The problem of this technique is that the player cannot change the volume of the three channels as a single operation. This implies unwanted output levels between two successive samples.

In 2006 two MSX developers created an advanced encoder that converts a wave file to optimal PSG channel transitions using Viterbi search. They replayed a 44.1kHz wave file on a 23 year old MSX with higher SNR than an 8-bit DAC. The Viterbi search is rather CPU intensive so even though it would have been theoretically possible to use this method already in the 80's, there were no computers powerful enough to perform the analysis required.

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com