![]() |
|
![]() ![]() ![]() |
|
kader |
|
|||
Новичок Профиль Группа: Участник Сообщений: 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 |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
и ?
-------------------- |
|||
|
||||
kader |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.12.2011 Репутация: нет Всего: нет |
Она не работает вообще....много ошибок выбивает.. а эта программа точно работы контроллера ДМА?) |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
судя по всему это прога для чтения бутсектора с харда
что вы с DMA делать хотите? -------------------- |
|||
|
||||
kader |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.12.2011 Репутация: нет Всего: нет |
Ну мне вообще нужно разработать программу работы контроллера DMA. у меня получается вот такое.. |
|||
|
||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
ну я и спрашиваю что делать? DMA это direct memory access wiki и нужно оно для быстрого доступа к памяти без участия ЦПУ, можно как в примере данные с диска читать, а можно куски памяти копировать. Вам что именно нада сделать с ДМА? -------------------- |
|||
|
||||
kader |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 25.12.2011 Репутация: нет Всего: нет |
ну это я понимаю что прямой доступ к оперативной памяти. Мне нужна программа работы этого контроллера.Я сам толком не могу понять уже все книги перечитал,все ровно не мог понять.Так я сложил программу что определяет тип и параметры контроллера DMA.А она не работает и в чем проблема не знаю. |
||||
|
|||||
500mhz |
|
|||
![]() шайтан ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1017 Регистрация: 5.5.2008 Где: Киев / Italy Репутация: нет Всего: 14 |
надеюсь вы ее не в винде запускаете?
-------------------- |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |