Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 02.06.2018
Сообщений: 36
Записей в блоге: 1
1

Доступ к шине данных в QB64

11.10.2019, 18:35. Показов 2382. Ответов 12

Привет, братцы по разуму!
У меня к вам два вопроса:
1. Есть ли у кого руководство пользователя для QB64 (именно для 64)?
2. Есть ли у QB64 доступ к шине данных компьютера, на котором он работает?
В частности, хочется снимать данные со звуковой карты и записывать их в памяти QB64.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2019, 18:35
Ответы с готовыми решениями:

Как отследить адрес на 16 битной шине данных?
Имеется GameBoy. У него игры на катриджах, на катридж выведена шина данных. ...

Как русифицировать QB64
Как русифицировать QBasic под Windows 7 64 бит? Вместо русских букв пишет абракадабра типа...

Как руссифицировать QB64
Как руссифицировать QB64

Публикация интересных исходников по QB64
Платформа QuickBasic 32 и 64 бита. Используемая платформа разработки qb64. Здесь я буду время...

12
2783 / 1294 / 167
Регистрация: 28.10.2011
Сообщений: 4,790
Записей в блоге: 6
11.10.2019, 20:28 2
Цитата Сообщение от 66Андрей Посмотреть сообщение
2. Есть ли у QB64 доступ к шине данных компьютера, на котором он работает?
Не путайте железо и программу. Шина данных доступна процессору и всем подключенным к ней устройтвам (в современных процессорах, она доступна только внутри процессора). Адресное пространство виртуализированно.
Современные ОС не дадут возможность работать приложениям используя физические адреса, только виртуальные.

Цитата Сообщение от 66Андрей Посмотреть сообщение
В частности, хочется снимать данные со звуковой карты и записывать их в памяти QB64.
В винде для этого есть API. QB к нему не имеет доступа по понятным причинам. Насчет QB64 сложно сказать. Скорее всего тоже нет.
На самом деле задача несложная, но для нее нужен бейсик под современную ОС.
2
4828 / 1503 / 393
Регистрация: 25.04.2010
Сообщений: 4,245
Записей в блоге: 1
13.10.2019, 12:09 3
Цитата Сообщение от locm Посмотреть сообщение
Насчет QB64 сложно сказать.
Там был доступ к WinAPI(не уверен правда что он обновляется хоть как-то), более того там приличный
функционал по звуку для любителей поклепать игрульки. А для захвата того, что воспроизводится
нужен WASAPI, с этим интерфейсом не работал, QB64 для этих целей бы точно брать не стал.
Думаю проще написать свой костыль на MME и через него весь звук и выводить с собственным контролем,
но можно кончено потыкаться по интернетам и попробовать WASAPI, если кто сильно умненький - пусть дерзают.
1
2783 / 1294 / 167
Регистрация: 28.10.2011
Сообщений: 4,790
Записей в блоге: 6
13.10.2019, 13:24 4
Цитата Сообщение от Quiet Snow Посмотреть сообщение
А для захвата того, что воспроизводится нужен WASAPI
Он появился в Висте. Для лучшей совместимости можно использовать Waveform https://docs.microsoft.com/ru-... -functions.
Принцип работы простейший. API позволяет захватывать звук и воспроизводить его.
2
4828 / 1503 / 393
Регистрация: 25.04.2010
Сообщений: 4,245
Записей в блоге: 1
14.10.2019, 10:47 5
Цитата Сообщение от locm Посмотреть сообщение
Waveform ... Принцип работы простейший.
Это и есть MME.

Вопрос, к слову, поставлен неоднозначно. Если человеку нужно получить звук, формирующийся в системе
со всего софта(кроме ASIO), уходящий в выбранное устройство, то без WASAPI не выйдет. Если же таких
требований нет, то с лихвой хватит MME. Всё от задачи зависит.

Цитата Сообщение от locm Посмотреть сообщение
Для лучшей совместимости
Согласен. Если есть возможность повысить совместимость софта без ущерба функционалу - этим
надо пользоваться.
1
Модератор
6763 / 2775 / 526
Регистрация: 24.04.2011
Сообщений: 5,262
Записей в блоге: 10
14.10.2019, 14:26 6
Лучший ответ Сообщение было отмечено 66Андрей как решение

Решение

Quiet Snow, locm, оба полезли не в те дебри программирования.
Человек вроде понятно написал:
Цитата Сообщение от 66Андрей Посмотреть сообщение
хочется снимать данные со звуковой карты и записывать их в памяти QB64.
Со звуковой карты!!! По боку ваши рассуждения про ASIO и WASAPI
На входе микрофон, на выходе звуковухи сигнал, который надо записать при помощи QB64.
Явно у автора есть код, который он не может/не хочет/ не имеет возможности/ перевести на современный ЯП, вот и ищет способ как бы извратиться, и снять звук и ввести внутрь для этого кода.
1
0 / 0 / 0
Регистрация: 02.06.2018
Сообщений: 36
Записей в блоге: 1
14.10.2019, 18:32  [ТС] 7
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Quiet Snow, locm, оба полезли не в те дебри программирования.
Человек вроде понятно написал:

Со звуковой карты!!! По боку ваши рассуждения про ASIO и WASAPI
На входе микрофон, на выходе звуковухи сигнал, который надо записать при помощи QB64.
Явно у автора есть код, который он не может/не хочет/ не имеет возможности/ перевести на современный ЯП, вот и ищет способ как бы извратиться, и снять звук и ввести внутрь для этого кода.
Pro_grammer, спасибо за "правильное" понимание.
На входе микрофон, на выходе звуковухи сигнал, который надо записать при помощи QB64.
Явно у автора есть код, который он не может/не хочет/ не имеет возможности/ перевести на современный ЯП, вот и ищет способ как бы извратиться, и снять звук и ввести внутрь для этого кода.
Например, команда: INP(&H3DA) читает байт регистра состояния платы CGA (чтобы контролировать обратный ход луча).
В ДОСовских Бэйсиках (QB40,QB45) доступ к звуковым картам, работающим под Виндовс, был закрыт.
А QB64 - работает под виндовс, поэтому, возможно, у него есть простые команды, которые могут обращаться к регистрам ввода-вывода устройств, работающих под всей ОС Виндовс...
Остаётся только найти правильные адреса выходного порта моей звуковой карты! Но где находится такой справочник,
в котором расписаны адреса ввода-вывода GA-A320M-S2H V2
0
Модератор
6763 / 2775 / 526
Регистрация: 24.04.2011
Сообщений: 5,262
Записей в блоге: 10
14.10.2019, 21:17 8
Цитата Сообщение от 66Андрей Посмотреть сообщение
А QB64 - работает под виндовс, поэтому, возможно, у него есть простые команды, которые могут обращаться к регистрам ввода-вывода устройств, работающих под всей ОС Виндовс...
Для работы со звуком в Винде есть средства стандартной мультимедиа библиотеки - winmm.dll.
Эта библиотека поддерживает работу с потоком оцифрованного звука, с микшерами звука.
Я понятия не имею, умеет ли QB64 работать с внешними библиотеками и в каком объёме поддерживается системное API. Для записи звука вам понадобится вызывать waveInOpen, waveInAddBuffer, waveInStart и т.п.
Хотя я очень сомневаюсь, что это возможно на QB64.
Тут нужен как минимум FreeBasic, как наиболее продвинутый в этом плане и похожий по синтаксису с QBasic, или VB6. Но без глубокого переписывания кода точно ни чего не выйдет.
1
2783 / 1294 / 167
Регистрация: 28.10.2011
Сообщений: 4,790
Записей в блоге: 6
14.10.2019, 22:03 9
Цитата Сообщение от 66Андрей Посмотреть сообщение
А QB64 - работает под виндовс, поэтому, возможно, у него есть простые команды, которые могут обращаться к регистрам ввода-вывода устройств
Не думали почему у каждой модели звуковой карты свой драйвер? А еще существуют USB звуковые карты и другие типы. В винде нужно использовать WinAPI.
2
4828 / 1503 / 393
Регистрация: 25.04.2010
Сообщений: 4,245
Записей в блоге: 1
14.10.2019, 23:20 10
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Явно у автора есть код, который он не может/не хочет/ не имеет возможности/ перевести на современный ЯП
Pro_grammer, в этой области случайных людей нет. Кодить Sound Blaster ещё сложнее.
Недавно Стас(stabud) попросил меня потестить sfx библу, так там какая-то адская кроссплатформа,
и винда и линукс и даже DOS, посмотрел я DOS-овый код и дал дикую лыбу, потому что "разработчики"
понадеялись иcключительно на ENVIRON при определении SBIO\IRQ\DMA\HDMA - это восхитительно.
И как бы понятно, что там будет дальше. Это при том что реальный косяк может быть только
с определением DMA. Стоит говорить что более совместимого варианта (SBDSP с таймером) там нет.
Поэтому насчёт простоты и ты и locm немного заблуждаетесь. У меня есть рабочие образцы получения
данных с микрофона в потоках и сразу вывода, так вот аккумуляционный буфер - это минималочка,
рассчитывая - мозг уже можно в трубочку свернуть, на Realtek-aх заработает любое гавно, на
USB звуковухе же и экстравагантных устройствах типа WEB камер - не всегда, типовые задержки
и буферы везде разные. Этой темой уже года три не занимался, но веселья как помню было много,
сорцев сишных много прошерщено и аналитики чисто архитектурной - выше крыши, даже чтобы
простейшее сделать.

Цитата Сообщение от 66Андрей Посмотреть сообщение
А QB64 - работает под виндовс, поэтому, возможно, у него есть простые команды, которые могут обращаться к регистрам ввода-вывода устройств
Дядька ты же давно на форуме, наверняка читал, всё что я писал про QB64, он эмулирует эти вещи
причём фрагментарно(не полностью). Нету там никакого доступа к портам.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Со звуковой карты!!! По боку ваши рассуждения про ASIO и WASAPI
На входе микрофон, на выходе звуковухи сигнал, который надо записать при помощи QB64.
Не поверишь, но иногда так и формулируют, а имеют в виду именно захват всего звука в системе,
как делает OBS например. Уточнение абсолютно не лишнее. Примеров же по MME в интернете в избытке.
0
4828 / 1503 / 393
Регистрация: 25.04.2010
Сообщений: 4,245
Записей в блоге: 1
14.10.2019, 23:52 11


И да мужики, есть курьёзные случаи когда профи не смогли и MME закодить напрямую. Можно
привести в пример хвалёный Audacity, который у меня один раз отвалился(вообще не работал звук
на одной из систем, переустановки не помогали, там был полный отвал, на чистой системе),
потому что вывод в MME идёт через прослойку, которая написана через анус.

Доступ к шине данных в QB64


А также Davinci Resolve где написан сложнейший двиг и обсёр случился как раз в системе вывода,
которая не поддерживает устройства с частотой не равной 48КГц. Ну вы поняли, разрабы "подумали"
что у всех в системе частота 48КГц.

Это всё к тому, что про DOS и Sound Blaster с "есть код" речи вообще не идёт, потому что
автодетект видел, например, только в BWSB. Даже у Вани Бродского его не было, а это
топ библиотека на Паскале, заточенная под автостарт DMA(через прерывания), лучше пока не видел.
Звук там немного потрескивает в силу понятных, но работает быстро и в целом отлично.
0
2783 / 1294 / 167
Регистрация: 28.10.2011
Сообщений: 4,790
Записей в блоге: 6
15.10.2019, 00:09 12
Цитата Сообщение от Quiet Snow Посмотреть сообщение
У меня есть рабочие образцы получения данных с микрофона в потоках и сразу вывода
Для DOS? Код работает со всеми звуковыми картами, или с конкретной моделью, выпущенной много лет назад и с ISA разъемом?
0
4828 / 1503 / 393
Регистрация: 25.04.2010
Сообщений: 4,245
Записей в блоге: 1
15.10.2019, 00:32 13
Цитата Сообщение от locm Посмотреть сообщение
Для DOS? Код работает со всеми звуковыми картами, или с конкретной моделью
Нет это под винду.
Под DOS как-то давно(в 2000-х) писал простенький микшер. Он работал в одном кейзе на одной звуковой карте,
на железке. А образцов разных тестовых было много(уже позже). Но автоинит завалил(было только определение порта
и идеи по определению IRQ, через ack-порт), поэтому не стал дальше разгребать это дело. У меня в то время
не было интернета(вплоть до 2007-го) и кодил достаточно паршиво.
Но то, что было - работало. Тестовые образцы же позволили понять как нужно правильно сделать, чтобы работало
ещё и на NTVDM(там не пашет acknowledge порт и автоинициализация DMA, т.е. мы ограничены SB-DSP 2.0),
соотв. таймер, настраиваемый под размер буфера(таймер мы можем измерить), никаких автоинициализаций,
ну и всё это надо исключительно на асме писать, там других вариантов вообще нет.
В то время львиная часть программ запускалась ииенно так(через NTVDM), это сейчас DOSBox, либо FreeDOS,
с эмуляцией сложнее, железка всегда корректнее работает.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2019, 00:32

Нужно реогранизовать доступ и хранение данных (сейчас просто - отдельные html) и добавит возможность добавления и правки данных пользователем.
Есть некая контора.Свой сайт. Машины с WinXP (в основном) и win 98 Доступ через IIS Одновременно...

i5 6400 по шине в 2020
Привет, хз на кой черт меня потянуло обновить биос, не знал про удаление опции разгона по шине ...

Инвертированные значения на шине
Здравствуйте. Вывожу значения четырёх старших битов счётчика на четыре светодиода, но значения на...

Напряжение на шине CPU_Power
Добрый день. Подскажите, какое напряжение должно быть на шине CPU_Power при питании от USB для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.