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

User Tag List

Показано с 1 по 10 из 50

Тема: Простая работа с AY

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,709
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Простая работа с AY

    Требуется озвучить игру простыми звуками сопроцессора. В связи с этим вопрос к гуру: как вызвать из машинного кода оператор 128к-бейсика PLAY ? Вопрос посложнее: как сделать это на машине с сопроцессором, но без 128кб-ПЗУ? Второй вопрос - чистое пижонство или "очень хочется сделать чтобы работало на 48к-машинках с AY - правда, никогда не встречал таких машинок, даже не уверен, что где-то наберётся хоть пара штук". Так что первый вопрос всё-таки важнее. Но давайте и к нему отнесёмся критично. Может я чего-то недопонимаю. Первым помыслом было желание взять плеер из WHAM+AY. Вторым - некоторое исследование в области "а какие вообще плееры и (более или менее) стандартные форматы музыки для них используются?" Первым, что я нашёл, был плеер PT3x0A в журнале 3BIT. Его-то и думаю использовать, если не найду что-то поинтереснее (может даже покомпактнее).

    На Обероне работа с данным плеером выглядит так. Очень плохой стиль, очень. Непереносимый. Ну а шо делать.

    Код:
    MODULE TestPT3;
    IMPORT Asm, B := Basic, PT3x0A;
    
    VAR
      ace: PT3x0A.Melody;
    
    BEGIN (*$MAIN*)
      B.Init;
      IF PT3x0A.TabAdr() MOD 256 # 0 THEN
        B.PRSTR("Start address of module must be aligned to ");
        B.PRINT(PT3x0A.TabAdr() MOD 256); B.PRSTR(" bytes"); B.PAUSE(0);
      END;
    
      (* Player & melodies are from http://zxpress.ru/article.php?id=9508 *)
      B.DEFDATA(ace, 2137); (* ace.m *)
      B.DATA(...); (* Данные мелодии поскипаны *)
    
      PT3x0A.Install(ace);
    
      Asm.Code("play_l$: LD   IY,#0x5C3A");
      Asm.Code("         EI             ");
      Asm.Code("         HALT           ");
    
      PT3x0A.Play;
    
      Asm.Code("         LD   A,#0x7F   ");
      Asm.Code("         IN   A,(-2)    ");
      Asm.Code("         RRA            ");
      Asm.Code("         JR   C,play_l$ ");
    
      PT3x0A.Stop;
    
      B.Quit;
    END TestPT3.
    Хочется работать со звуками где-то так:

    Basic.PLAY("строка...");

    Ну и чтобы сам плеер был как можно компактнее. И фиг с ним, пусть вызывается из ПЗУ 128.

    Перерыл кучу материалов, но не нашёл как это сделать из машкода.
    Вложения Вложения
    Последний раз редактировалось Oleg N. Cher; 29.10.2014 в 01:11.

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

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

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

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

Похожие темы

  1. Работа с trd на PC
    от Crowner в разделе Разный софт
    Ответов: 36
    Последнее: 03.12.2018, 16:43
  2. Работа с HDD!!!
    от Voxel в разделе Программирование
    Ответов: 16
    Последнее: 05.05.2013, 03:16
  3. Работа со спрайтами
    от drbars в разделе Софт
    Ответов: 19
    Последнее: 12.11.2012, 19:59

Ваши права

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