информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медСтрашный баг в WindowsСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный взлом GoDaddy 
 Просроченный сертификат ломает... 
 Phrack #70/0x46 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
код 20.11.02 13:50  Число просмотров: 1080
Автор: kar Статус: Незарегистрированный пользователь
Отредактировано 21.11.02 22:25  Количество правок: 1
<"чистая" ссылка>
> Или раньше, ибо под виндой с винтом работать просто так не
> выйдет ;)
ну есесно.. я писал что запись проходит нормально.. меня все интересует бит bsy
вот если хочешь посмотри у себя(хард на примари мастер):
.386
DATA segment use16
sector512 db 512 dup (0)
sectoraddress dd ?
tblhex db '0123456789ABCDEF'
standardATAbases dw 1f0h,170h
channelnumber db ?
disknumber db ?
ATAfeatures db ?
ATAsectorcount db ?
ATAsectornumber db ?
ATAcylinder dw ?
ATAhead db ?
ATAaddressmode db ?
ATAcommand db ?
ATAbaseportaddr dw ?
deverrorcode db ?
optime dd ?
DATA ends
CODE segment use16
assume cs:CODE,ds:CODE,fs:DATA
begin:
push DATA
pop fs
push fs
pop ds
push 0b800h
pop es

mov fs:[channelnumber],1
mov fs:[disknumber],0
mov 1 ptr fs:[ATAsectorcount],1
mov 1 ptr fs:[ATAsectornumber],5Eh ;просто число
mov 2 ptr fs:[ATAcylinder],0
mov 1 ptr fs:[ATAhead],0
mov 1 ptr fs:[ATAaddressmode],1
mov 1 ptr fs:[ATAcommand],30h
call cmd2HDD
cmp fs:[deverrorcode],0
jnz e_exit

;delay 20ticks
push es
push 0000
pop es
mov eax,es:[046ch]
mov fs:[optime],eax
wait1:
mov eax,es:[046ch]
sub eax,fs:[optime]
cmp eax,20
jb wait1
pop es

;DUMP SR! (=58h)
; mov di,80
; mov dx,fs:[ATAbaseportaddr]
; add dx,7
; in al,dx
; mov ah,0AAh ;можно не писать
; call dumpAX

;write sector
mov si,offset sector512
mov dx,fs:[ATAbaseportaddr]
mov cx,256
rep outsw
exit:
mov ax,4c00h
int 21h
e_exit:
mov di,0
mov ax,0EFEFh
call dumpAX
jmp exit
;---------------------------------------------------------------------------------------
cmd2HDD proc
pusha
push es
push 0000
pop es

mov fs:[deverrorcode],0
mov bh,0
mov bl,fs:[channelnumber]
dec bx
shl bx,1
mov ax,fs:[bx+standardATAbases]
mov 2 ptr fs:[ATAbaseportaddr],ax

mov dx,fs:[ATAbaseportaddr]
add dx,6
mov al,fs:[disknumber]
shl al,4
or al,10100000b
out dx,al

mov eax,es:[046ch]
mov fs:[optime],eax

inc dx
waitHDready:
mov eax,es:[046ch]
sub eax,fs:[optime]
cmp eax,3
ja @err1
in al,dx
test al,80h
jnz waitHDready
test al,08h
jnz waitHDready
test al,32
jnz @err1

mov dx,fs:[ATAbaseportaddr]
inc dx
mov al,fs:[ATAfeatures]
out dx,al
inc dx
mov al,fs:[ATAsectorcount]
out dx,al
inc dx
mov al,fs:[ATAsectornumber]
out dx,al
inc dx
mov ax,fs:[ATAcylinder]
out dx,al
inc dx
mov al,ah
out dx,al
inc dx
mov al,fs:[disknumber]
shl al,4
or al,10100000b
or al,fs:[ATAhead]
mov ah,fs:[ATAaddressmode]
shl ah,6
or al,ah
out dx,al

inc dx
mov al,fs:[ATAcommand]
out dx,al
jmp @end1
@err1: mov fs:[deverrorcode],1
@end1:
pop es
popa
retn
endp cmd2HDD
;------
dumpAX proc ;input ds=DATA!
push bx
push ax
and ax,0f0h
shr ax,4
mov bx,offset tblhex
xlat
mov es:[di],al
inc di
inc di
pop ax
push ax

and ax,0fh
xlat
mov es:[di],al
inc di
inc di
pop ax
push ax

and ax,0f000h
shr ax,12
xlat
mov es:[di],al
inc di
inc di
pop ax
push ax

and ax,0f00h
shr ax,8
xlat
mov es:[di],al
inc di
inc di
pop ax
pop bx
retn
dumpAX endp
CODE ends
end begin
<programming> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach