scorpions forever!!! \O/
Экзешник экспортирует нужные функции- можно его юзать как исполняемый файл и как длл.
dl.dropboxusercontent.com/u/2393036/zxtune/aycli/libay.zip
а можно готовое exe+dll? у мня Си не справляются(
бывают не совсем легальные и совсем не легальные способы добычи, имхо, в нашем случае это будет не страшно. :)
Все прекрасно работает.

extern int ay_open();
extern void ay_close();
extern int ay_start();
extern int ay_stop();
extern int ay_writereg(int idx, int val);

int main(int argc, char** argv)
{
  int data[11] = {0, 10, 5, 10, 12, 10, 0, 248, 15, 15, 15};
  ay_open();
  ay_start();
  for (int i = 0; i < 11; ++i) ay_writereg(i, data[i]);
  int i;
  scanf("%i", &i);
  ay_stop();
  ay_close();
}
да, собрался со возможными фичами пуревасика, поэтому нет смысла тебя запрягать в поиск «где потенциальная ошибка?». я и спросил помощь Сишнегов.
Ты же на пуребасике собирался эту дллку юзать.
ну продемонстрируй тогда с помошью мозга, лучше с рабочим exe+dll.
Хочется убедиться насчет «увы, никак» или запросить помощь зала других сишников.
Ну если включить мозг, то можно. Без этого увы, никак.
Ну вот я все-таки спросил — можно ли на Ц запустить длл с указанными параметрами Регистр-Значение?
Я проверил твои данные с помощью aycli — как и говорил, звучит три достаточно низкочастотных тона. Также есть некие отзвуки из-за интерференций, похожие на огибающую.
Пишешь файлик test.lst со следующим содержимым:

start
w 10 15
w 9 15
w 8 15
w 7 248
w 6 0
w 5 10
w 4 12
w 3 10
w 2 5
w 1 10
w 0 0

и потом скармливаешь:

aycli.exe <test.lst

Будет слышен результат (консоль после этого беситься начнет, но это фигня). Выход по Ctrl+C.

Что за треды?
смысл теста вот в чем — я пытаюсь запустить длл и записать в регистра АУка указанные данные(как в примере асм).
Естественно, я ничо не слышу, или я делаю неправильно, вот и прошу Сишников протестировать подобное.

думаю, что в aycli запись в порты конкретных номеров и значений прокатит.

похоже, что ты не только импорты для либы, но и трэды осилишь на ходу…
А чо ты тогда пример приводишь на асме если тестируешь длл? Упрлс?
Вова, ты упрт штле? я длл вызываю не под зх, я привел рабочий пример для аука, но с длл я получаю тишину, просто хотелд убедиться.
  • avatar VBI
  • 3
так проверь на спеке, убедись
но все же хотелось убедиться, что вызов .dll из Си работает с примером.
Нет, это чистый тон (точнее три тона).
скопипастил кусок из ужясма, похоже, что огибающая
Ну ты какбэ вообще огибающую никак не затрагиваешь.
Сишники реквкст! нужен пример вызова для огибающей. Что-то у мну не вызывается, но похоже, что функции работают.

 LD            HL ,LA6F5
 LD            E ,$0B
LA688 LD            BC ,$FFFD
 DEC           E
 ;LD            A ,E
 OUT           (C) , E;A
 LD            B ,$BF
 LD            A ,(HL)
 OUT           (C) , A
 INC           HL
 JR            NZ ,LA688

 jr $
LA6F5 db 0fh,0fh,0fh,0f8h,0,0Ah,0Ch,0Ah,5,0Ah,0,0