Что такое ручка ввода-вывода в Sound Blaster? (Сборка) - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь включить песню в игру, которую создали я и моя группа. Из видео от Лео Оно я загрузил комплект разработчика для Sound Blaster Series PDF и нашел несколько драйверов в репозитории Github, о котором он также упомянул. На этом видео он показал, как это сделать для воспроизведения MIDI. Но теперь, когда у меня это работает, я пытался понять, смогу ли я выяснить, как использовать драйвер WAV. Но при попытке понять, как воспроизвести файл, он запросил wIOHandle. Я считаю, что могу не знать других, но также не знаю, где о них почитать. Если бы кто-нибудь мог сказать мне, где я мог бы прочитать об этих вещах на картинке или рассказать, что это такое, я был бы признателен. На картинке есть 2 (может быть, 3, я не уверен, потому что я не могу ничего попробовать, не зная других), которых я не знаю:

enter image description here

Parameters:
- wIOHandle
    Digitized sound I/O handle.
- dw32BitAddx
    Specifies the 32-bit linear address of the DMA buffer. Currently, the buffer must be sited entirely 
    within the lowest 1MB of memory.
- w2KBHalfBufferSize
    The DMA buffer size, in units of 2KB per half-buffer.

Это также упоминается в других функциях wFileHandle, но я бы сказал, что это тот, который мы получаем после использования INT 21h / Ah = 3Dh - это правильно, верно?

Я использую драйвер CTWDSK.DRV (там тоже был CTWMEM.DRV, но я думаю, что DSK читает с самого диска, где у меня будет файл, как и у меня, и MEM Я не уверен, что это за память, может RAM?). Кроме того, это для 16-битного программирования 8086, запущенного на DOSBox, собираемого с MASM, если это помогает.

Кстати, если я работаю над 16-битным, как я должен использовать 32-битный адрес? Какой-то адрес DX: AX? Новый сегмент? (Я только что узнал, что мы можем создавать новые сегменты) Разве драйвер не предназначен для 32-битных процессоров? Извините, если это все основные c вопросы. Я изучаю сборку. Может быть, это на самом деле слишком продвинуто, и я не знал?

Заранее благодарю вас за любую помощь.

Ссылка на PDF (на самом деле это DOCX), о котором я упоминал (если я может выложить по какой-то причине - авторское право? Надеюсь, что нет - просто скажите, и я сразу удалю ссылку): https://github.com/leonardo-ono/Assembly8086PlayMidiUsingCtmidiDriverSB16/blob/master/LRMNL.docx

...