Поиск:

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


Новичок



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

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

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


 




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


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

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