Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа работы контроллера DMA, Помогите с программой пожалуйста 
:(
    Опции темы
kader
Дата 25.12.2011, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.12.2011

Репутация: нет
Всего: нет



IDEAL
P386
LOCALS
MODEL MEDIUM

DATASEG
Text0 DB "Tip",0
Text1 DB "Kanalov",0
AnyK  DB "Speed",0

ENDS

SEGMENT PRD_Table para public 'DATA'
        DB 16 DUP(?)
ENDS

SEGMENT DMA_Sector512 para public 'DATA'
        DB 512 DUP(?)
ENDS

SEGMENT sseg para stack 'STACK'
DB 400h DUP(?)
ENDS

CODESEG

PROC IDE_DMA_Test
        mov     AX,DGROUP
        mov     DS,AX
        mov     AX,3
        int     10h
        mov     [ScreenString],25
        mov     [ScreenColumn],0
        call    SetCursorPosition
        MShowColorText 1,Text0
        call    FindHDD
        cmp     [ChannelNumber],1
        je      @@TestLBASupport
        mov     SI,offset NoHDD
        call    FatalError
@@TestLBASupport:
        cmp     [dword ptr Sector512+60*2],0
        jne     @@LBASupported
        mov     SI,offset NoLBA
        call    FatalError
@@LBASupported:
        call    SearchBusMasterIDEContr
        mov     AX,PRD_Table
        mov     ES,AX
        xor     EAX,EAX
        mov     AX,DMA_Sector512
        shl     EAX,4
        mov     [ES:0],EAX
        mov     [word ptr ES:4],512
        mov     [word ptr ES:6],8000h
        xor     EAX,EAX
        mov     AX,PRD_Table
        shl     EAX,4
        mov     DX,[IDEContrRegsBaseAddr]
        add     DX,04h
        out     DX,EAX
        call    ReadBootSector
        MShowColorText 1,Text1
        push    DS
        mov     AX,DMA_Sector512
        mov     DS,AX
        xor     SI,SI
        call    ShowSector512
        pop     DS
        MShowColorText 1,AnyK
        call    GetChar
        mov     AX,3
        int     10h
        mov     AH,4Ch
        int     21h
ENDP IDE_DMA_Test

PROC ReadBootSector near
        pushad
;        mov     DX,[IDEContrRegsBaseAddr]
;        add     DX,02h
;        mov     AL,110b
;        out     DX,AL
        mov     DX,[IDEContrRegsBaseAddr]
        mov     AL,0
        out     DX,AL
        mov     AL,1000b
        out     DX,AL
        mov     [ATAAddressMode],1
        mov     [dword ptr SectorAddress],0    ;ᥪв®а 0
        mov     [dword ptr ATASectorNumber],0
        mov     [ATAFeatures],0
        mov     [ATASectorCount],1 
        mov     EAX,[SectorAddress]
        mov     [ATACommand],0C8h  
        call    SendCommandToHDD
        cmp     [DevErrorCode],0  
        jne     @@Err

        mov     DX,[IDEContrRegsBaseAddr]
        add     DX,02h
        mov     AL,110b
        out     DX,AL
        mov     DX,[IDEContrRegsBaseAddr]
        mov     AL,1001b
        out     DX,AL
        mov     AX,0
        mov     ES,AX
        mov     DX,[ATABasePortAddr]
        add     DX,7
@@WaitCompleet:
        mov     EAX,[ES:046Ch]
        sub     EAX,[OpTime]
        cmp     EAX,MaxHDDWaitTime
        ja      @@Err
        in      AL,DX
        test    AL,88h   ;б®бв®п­ЁҐ бЁЈ­ «®ў BSY Ё DRQ
        jnz     @@WaitCompleet
        mov     DX,[IDEContrRegsBaseAddr]
        add     DX,02h
@@WaitDMAOperationEnd:
        in      AL,DX
        test    AL,100b
        jz      @@WaitDMAOperationEnd

        mov     DX,[IDEContrRegsBaseAddr]
        mov     AL,0
        out     DX,AL
        popad
        ret

@@Err:  mov     SI,offset NoSec
        call    FatalError
ENDP ReadBootSector
ENDS

END
PM MAIL   Вверх
500mhz
Дата 25.12.2011, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



и ?


--------------------

PM MAIL ICQ   Вверх
kader
Дата 25.12.2011, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.12.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 25.12.2011,  18:19)
и ?

Она не работает вообще....много ошибок выбивает..
а эта программа точно работы контроллера ДМА?)
PM MAIL   Вверх
500mhz
Дата 25.12.2011, 19:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



судя по всему это прога для чтения бутсектора с харда
что вы с DMA делать хотите?


--------------------

PM MAIL ICQ   Вверх
kader
Дата 25.12.2011, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.12.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 25.12.2011,  19:19)
судя по всему это прога для чтения бутсектора с харда
что вы с DMA делать хотите?

Ну мне вообще нужно разработать программу работы контроллера DMA.
у меня получается вот такое..
PM MAIL   Вверх
500mhz
Дата 26.12.2011, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



Цитата

Ну мне вообще нужно разработать программу работы контроллера DMA.

ну я и спрашиваю что делать? DMA это direct memory access wiki
и нужно оно для быстрого доступа к памяти без участия ЦПУ, можно как в примере данные с диска читать, а можно куски памяти копировать.
Вам что именно нада сделать с ДМА?


--------------------

PM MAIL ICQ   Вверх
kader
Дата 26.12.2011, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 25.12.2011

Репутация: нет
Всего: нет



Цитата(500mhz @ 26.12.2011,  11:34)
Цитата

Ну мне вообще нужно разработать программу работы контроллера DMA.

ну я и спрашиваю что делать? DMA это direct memory access wiki
и нужно оно для быстрого доступа к памяти без участия ЦПУ, можно как в примере данные с диска читать, а можно куски памяти копировать.
Вам что именно нада сделать с ДМА?

ну это я понимаю что прямой доступ к оперативной памяти. Мне нужна программа работы этого контроллера.Я сам толком не могу понять уже все книги перечитал,все ровно не мог понять.Так я сложил программу что определяет тип и параметры контроллера DMA.А она не работает и в чем проблема не знаю.
PM MAIL   Вверх
500mhz
Дата 26.12.2011, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


шайтан
***


Профиль
Группа: Завсегдатай
Сообщений: 1017
Регистрация: 5.5.2008
Где: Киев / Italy

Репутация: нет
Всего: 14



надеюсь вы ее не в винде запускаете?


--------------------

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0929 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.