Hi All!.Otóż mam pytanie czy a jeżeli tak to jak w assemblerze można wyłączyć dysk twardy(z poziomu systemu) chodzi mi o kawałek kodu źródłowego jeśli można :d
0
0
Programik napisałem parę lat temu - dokładnie to, czego potrzebujesz - dodałem tylko parę komentarzy.
kod segment
org 100h
assume cs:kod,ds:kod
Start: mov ah,9
lea dx,DisOrEn
int 21h ;Wyświetlenie komunikatu "D or E" - Disable or Enable
mov ah,1
int 21h ;Odczytanie znaku z klawiatury
and al,0dfh ;Zerujemy 5 bit (UpCase)
cmp al,'E' ;ASCII 69
je Drive
cmp al,'D' ;ASCII 68
jne Start
Dis: mov byte ptr OnOff,1
Drive: mov ah,9
lea dx,Pytanie
int 21h ;Wyświetlenie komunikatu "A..Z" - czyli oczekiwanie na literę dysku do wyłączenia
mov ah,1 ;Odp. znak do AL
int 21h ;Odczytanie znaku z klawiatury
and al,0dfh ;Zerujemy 5 bit (UpCase)
sub al,'A' ;65 -> kod 'A' w ASCII ; A -> 0
mov dl,al
mov ax,5f07h
add al,byte ptr OnOff
int 21h ;Włączenie/wyłączenie danego dysku
mov ax,4c00h
int 21h ;Zakończenie programu
DisOrEn db "D or E : $"
Pytanie db " A..Z : $"
OnOff db 0
kod ends
end start
kompilacja:
[code]tasm plik.asm
tlink plik.obj /t[/code]
0
Dzięki bardzo.ozdroP [cya]
0
czy mi się tylko tak wydaje, czy jest problem z tą funkcją w WIN XP?, słyszałem że w tym systemie nie można wykonać wszystkich przerwań
0
Nie wiem - WinXP to w ogóle jakaś jawna kpina - nie interesuje mnie ten system.