проблема с DMA (работа с нестандартным УВВ)

Тема в разделе "WASM.OS.DEVEL", создана пользователем pyrodex, 25 авг 2008.

  1. pyrodex

    pyrodex Павлик

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    25
    здрасти в очиридной раз)

    интрумент: машина PC104 совместимая с Win, Linux ну и т.п.
    На ней есть ISA расширеная (16 бит).
    Работаем под ДОС.

    Есть устройство, которое висит на ISA. Короче говоря должна передавать данные через DMA5.
    Понятное дело, что не работает)

    Вопрос номер раз:
    Устройство внешнее отсутствует. После включения микроPC щупаем осцилоскопом DACK1. Он в "1" - как и должно быть. Далее щупаем DACK5 он в "0". почему? по документации на ISA DACK должны быть в "1" и только когда приходит DRQ, DACK становится "0". (канал dma размаскирован естесна).

    Вопрос номер 2:
    инициализация DMA5. может чота не так?
    Код (Text):
    1. mov al,101b
    2. out 0D4h,al     ; masking DMA5
    3. out 0D8h,al     ; reset FF
    4. mov al,01010101b
    5. out 0D6h,al     ; mode
    6.  
    7. mov ax,100h
    8. mov bx,8 * MAXNUMSAMPLES * 3 / 16
    9. int 31h
    10. mov [dosMemSel],dx
    11. ; ax - dosmem segment
    12. movzx eax,ax
    13. shl eax,3
    14. mov ecx,(8 * MAXNUMSAMPLES) >> 1
    15. add eax,ecx
    16. neg ecx
    17. and eax,ecx     ; eax = dma buffer ptr
    18. out 0C4h,ax     ; offset
    19. shr eax,16
    20. out 8Bh,al      ; page
    21. mov ax,4 * MAXNUMSAMPLES * 2 - 1
    22. out 0C6h,ax     ; cntr
    23. mov al,001b
    24. out 0D4h,al     ; unmasking DMA5
     
  2. pyrodex

    pyrodex Павлик

    Публикаций:
    0
    Регистрация:
    21 авг 2008
    Сообщения:
    25
    может канешна DACK5 уже умер)