begin process at 2012 05 25 03:22:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

c, c++ et asm

 > 

detection ide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

detection ide

mercredi 8 septembre 2004 à 17:37:42 | detection ide

patatalo

Membre Club Administrateur CodeS-SourceS

salut,

quelqu'un aurait-il une doc ou un algo afin de detecter les peripheriques IDE et SATA sans l'aide du BIOS mais par acces aux ports E/S.

@++
jeudi 9 septembre 2004 à 11:28:21 | Re : detection ide

patatalo

Membre Club Administrateur CodeS-SourceS

re,

exemple en Nasm:
ici, je lit le registre de status, je l'affiche, j'envoi une commande NOP au controleur et je réaffiche les status lus apres jusqu'a
!BUSY

apparement, si aucun disque n'est attaché au controleur, il repond 0x20 ou 0x00 ( peut etre suivant MASTER/SLAVE )
faut que je teste avec différentes positions MASTER/SLAVE et différentes combinaisons.

je préfererai gagner du temps avec un algo fiable.

( dans le cadre d'un boot en 32 bits )

PRIVATE ideTrace:;(devid)
LOCALBEGIN
pushb 0
pushb 0

%define lbuf pd[ebp-4]
%define lstat pd[ebp-8]

This ebx
sub esp,128
mov lbuf,esp

mov eax,__param(0)
lea esi,[ebx+CZONE]
mov edi,[ebx+eax*4+DISK.IDE.dev]
lea edi,[edi+ebx]

xor eax,eax
movzx edx,word [edi+IDEPARM.iobase]
lea edx,[edx+IDEREG_ALTST]
in al,dx
mov lstat,eax

lea edx,[ebx+IDESTR.fmtB]
call printf,lbuf,edx,lstat
mov eax,lbuf
call StaticPrint

mov eax,lstat
inc al
je .3

movzx edx,word [edi+IDEPARM.iobase]
mov al,(CB_DC_HD15+CB_DC_NIEN)
lea edx,[edx+IDEREG_ALTST]
out dx,al

movzx edx,word [edi+IDEPARM.iobase]
mov al,[esi+IDEPARM.drive]
lea edx,[edx+IDEREG_DSEL]
out dx,al

movzx edx,word [edi+IDEPARM.iobase]
mov al,IDECMD_NOP
lea edx,[edx+IDEREG_CMD]
out dx,al

IODELAY 50

.1
movzx edx,word [edi+IDEPARM.iobase]
xor eax,eax
lea edx,[edx+IDEREG_ALTST]
in al,dx
cmp eax,lstat
mov lstat,eax
je .2
lea edx,[ebx+IDESTR.fmtB]
call printf,lbuf,edx,lstat
mov eax,lbuf
call StaticPrint
.2
test lstat,IDEST_BSY
jne .1

.3
LOCALEND
ret

voilà, j'espère que c plus clair
( pas d'API ici car c'est moi qui doit la faire : )

@++


Cette discussion est classée dans : ide, detection


Répondre à ce message

Sujets en rapport avec ce message

Detection de supression de fichier [ par mastercatz ] Bonjour. Voila mon probleme, j'aimerais faire un programme qui detecte les demandes d'effacement de fichiers sur un serveur (sous 2000Serv ou 2003Serv detection ecran [ par patatalo ] salut,Toujours dans le cadre d'un boot 32 bits, je cherche un moyen de detecter la présence d'un écran afin de pouvoir rediriger les sortie video vers Interfacer un PIC avec une liaison cdrom IDE [ par Frudjp ] Bonjour, Je suis tout nouveau sur ce forum que j'ai découvert au hasard de mes recherches dans le but de m'informer sur le protocole de liaison ATAPI


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,042 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales