![]() |
|
![]() ![]() ![]() |
|
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 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для начинающих" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для начинающих | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |