Int 25h

fortman1987 Messages postés 2 Date d'inscription mercredi 13 décembre 2000 Statut Membre Dernière intervention 7 mars 2013 - 17 févr. 2010 à 16:09
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010 - 30 mars 2010 à 12:03
salut everybody
je suis un etudiant en informatique ,le professeur de s.e nous a demander d'ecrire un code delphi qui permet de lire et afficher les informations de la piste 0 d'une disquette(fat...),
utilisant les interruptions dos .
svp quelles interruption ,procedures quand peut travailler avec ....
merci a tous ...........

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
20 févr. 2010 à 11:57
Salut,

Heu... La programmation avec les interruptions DOS/BIOS, ça date. Tu travailles avec quelle version de Delphi ?
Je sais même pas si une Delphi 1 suffirait. Un Turbo Pascal ou un TASM (Ou même debug) seraient probablement plus approprié.
Mais bon, je parle d'outils qui ont mon âge...

Sur une Delphi récente, tu ne peux pas appeler directement ces interruptions avec l'instruction assembleur int. Tu dois par contre pouvoir passer par DeviceIoControl en passant un wControlCode de VWIN32_DIOC_DOS_INT25 par exemple. Dans ce genre là. Mais je ne pense pas que ce soit ce que ton prof attende...
0
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010
30 mars 2010 à 11:54
sous quel systeme d exploitation ce code doit il marcher ?

je te conseil d utiliser turbo pascal 7.01
il est libre


pour les interruptions du dos il te suffit de :
faire une recherche sur les fonctions de l interruption 21 du dos

pour le reste voici un exemple de "haypo" l'auteur du code ci dessous

(uses Dos;)
const MasqueFlagsCF = 1; { Masque pour isoler le bit CF des flags } (1)

function TouchPresse : Boolean;
var Regs: Registers; (2)
begin with Regs do begin
AH := $01; { Fonction 01h: Vérification de la présence d'une touche }
Intr ($16,Regs); (3)
TouchPresse :(Flags and MasqueFlagsCF MasqueFlagsCF); (1)
end end;

function LitTouche : Char;
var Regs: Registers;
begin with Regs do begin
AH := $00; { Fonction 00h : Lecture d'une touche }
Intr ($16,Regs);
if AL=0 then (4)
LitTouche := Char(AH or 128) (5)
else
LitTouche := Char(AL);
end end;



kaboum
0
cs_kaboum Messages postés 31 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 8 juillet 2010
30 mars 2010 à 12:03
int21h ah=7305h pour la fonction

kaboum
0