Важная информация

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 15

Тема: Алгоритм работы муз. сопроцессора AY-3-891x

  1. #1
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Алгоритм работы муз. сопроцессора AY-3-891x

    Подскажите, плиз, где можно почитать по сабжу. Обычно в описаниях ограничиваются назначением регистров AY, без особой детализации, как на основе значений этих регистров формируется выходной сигнал. По крайней мере я ничего вразумительного для себя пока не нашёл.
    Последний раз редактировалось Spectramine; 02.02.2011 в 20:11.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в сорсах любого эмулятора.
    например, https://github.com/mkoloberdin/zemu/...ay/ay_chip.cpp
    смотри C_AyChip::Write() и C_AyChip::Flush()
    (всё остальное - это завязка на эмулятор)
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  4. #3
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо. Но хотелось бы всё-таки почитать теорию. Тяжело разбираться в коде, имея только очень приблизительное представление о моделируемом устройстве и его функционировании. (Я сейчас как раз коды эмулей копаю, но большинство к тому же очень трудночитаемые).

    Вот ты, когда свой эмуль писал, чем руководствовался при написании кода эмуляции AY? Только сорсами других эмулей?
    Последний раз редактировалось Spectramine; 02.02.2011 в 23:15.

  5. #4
    Guru
    Регистрация
    27.02.2005
    Адрес
    москва
    Сообщений
    13,754
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    141
    Спасибо Благодарностей получено 
    1,172
    Поблагодарили
    769 сообщений
    Mentioned
    18 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    хотелось бы всё-таки почитать теорию
    http://www.ym2149.com/ay8910.pdf

  6. #5
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо, это я уже нашёл. Опять же, есть общая схема и расписаны регистры, а как сигналы формируются в целом, ниасиливаю. Это справочник для уже грамотных, а я ищу что-то типа инфоркомовской статьи. Пытаюсь понять, как формируются сигналы каждого блока (тон/шум/огибающая) и как они смешиваются.

  7. #6
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Вот ты, когда свой эмуль писал, чем руководствовался при написании кода эмуляции AY? Только сорсами других эмулей?
    у меня AY основан на коде из анриала.
    когда рефакторил, тогда уже смотрел доки и сорсы из других эмулей (в MAME код мутный, но авторы AY в MAME провели пару хороших исследований, там в комментах написано)

    Пытаюсь понять, как формируются сигналы каждого блока (тон/шум/огибающая) и как они смешиваются.
    Код:
    if (++ta >= fa) { ta = 0; bitA ^= -1; }
    if (++tb >= fb) { tb = 0; bitB ^= -1; }
    if (++tc >= fc) { tc = 0; bitC ^= -1; }
    это собственно весь AY (ну не весь, только тон, без шума и огибающей)

    дальше по коду там 3 строчки на шум и чуть больше на огибающаю (про огибающую хорошо в доке написано, кстати)
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  8. #7
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понятно. Ладно, буду с сорсами разбираться. А так хотелось почитать что-нибудь такое, научно-популярное

  9. #8
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    http://code.google.com/p/zxtune/sour...es/aym/aym.cpp

    Даже кой-какие комменты есть, даже с картинками

  10. #9
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Vitamin, имхо у тебя как-то перемудрено.
    вместо одной строчки "if (++ta >= fa) { ta = 0; bitA ^= -1; }" имеется 4 функции, не считая этой самой строчки.
    (это я так, просто сказал а то можно опять скатиться к C vs C++).
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  11. #10
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus Посмотреть сообщение
    вместо одной строчки "if (++ta >= fa) { ta = 0; bitA ^= -1; }" имеется 4 функции, не считая этой самой строчки.
    А не смущает, что там дополнительный функционал в этих строчках?

    Даже скажу какой- генерация меандра с указанной скважностью, причем для каждого канала свой флаг для включения данной фичи.

    Напиши пожалста такой код на С. Я посмотрю насколько он будет очевиднее, короче и оптимальнее.

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Алгоритм текстового Quest'a
    от ALKO в разделе Программирование
    Ответов: 11
    Последнее: 23.12.2010, 00:47
  2. Алгоритм и..
    от Пётр в разделе Программирование
    Ответов: 4
    Последнее: 21.05.2008, 21:52
  3. сложнопонимаемый алгоритм
    от psb в разделе Программирование
    Ответов: 35
    Последнее: 27.05.2006, 01:42
  4. Ответов: 8
    Последнее: 01.05.2006, 01:38

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •