Quote:
Asper:
Собственно в связи с этим вопрос, вы хотите написать драйвер для Win?
Нет, интерес разве что, в пересборке-оптимизации уже написаного
Realtek-ом... По реализации
API-шной части (COM-интерфейс), сделано относительно простенько, и весьма шустро (в отличии даже от asio4all), ну и
большее самообразование в этом вопросе...
А про порты - разумееться, хотелось бы забыть

хм. чтото какието непонятки со сборкой, с обьявлением публичных символов в FASM (codec.inc)
к примеру
Code:
public make_codec_cmd ; +++
proc make_codec_cmd stdcall, nid:dword, direct:dword, verb:dword, parm:dword
....
public codec_exec_verb ; +++
proc codec_exec_verb stdcall, cmd:dword;, res:dword <- returned in eax
....
нормально компилируеться символы добавляються (это необходимо для последущего реверса)
а стоит добавить еще один public дойдя до
Code:
public snd_hda_sequence_write
proc snd_hda_sequence_write stdcall, seq:dword
и это...
Code:
codec.inc [162]:
mov ecx, [esi + hda_verb.nid]
error: undefined symbol 'hda_verb.nid'.
с опцией же включения отладочных символов
Code:
FASM.EXE intel_hda.asm -s
flat assembler version 1.71.21 (1048576 kilobytes memory)
error: write failed.
:'(
гм..
CleverMouse, ах, какой это был занимательный квест!
вначале то не разобрался что после -s должно идти выходное имя, отладочных символов формата .fas, но не всё так просто:
утилита
pecvt.exe , расчитаная судя по всему на "fasm 1.67.29 with debug symbols", перестала заявлять
Quote:
" incorrect fas file signature"
после маленькой поправочки
Code:
.004046D8: cmp d,[esi],01A736166 ;'→saf'
.004046DE: jz .000404705 --↓1
.004046E0: push 00040D498 ;'incorrect fas file signature'
.004046E5: call printf

Ладно, теперь можно уже и подумать, где там CORB/RIRB и что такое VERB