Comment redemarrer le PC avec un programme DOS sur disquette

Ethylotek Messages postés 27 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 12 avril 2006 - 9 juin 2005 à 11:49
Ethylotek Messages postés 27 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 12 avril 2006 - 10 juin 2005 à 08:58
voici la fin de mon prog

printf("/***********************************************/\n");
printf("/* */\n");
printf("/* Op‚ration termin‚e ! */\n");
printf("/* */\n");
printf("/***********************************************/\n");
printf("\n");


printf("Veuillez inserer votre CD Windows XPpro\n") ;
system("pause");


system("shutdown.exe -r -f -t 0");



return 0;

}

mais la commande shutdown ne marche pas !
j'ai un message d'erreur : Bad command or file name
comment faut il que je m'y prenne ?


Piero

17 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 12:04
Si tu es sous dos en ayant démarrer avec une disquette de boot, tu ne peux pas redémarrer ton PC via la commande shutdown.
Shutdown est une commande windows et non DOS.

Cependant vu que tu as booté en mode DOS, tu devrais pouvoir jouer avec les interruptions, ce qui signifie que tu auras probablement de l'ASM.
Essaye de voir ca sur http://www.asmfr.com.

Shell
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 12:15
Pour t'aiguiller un peu dans tes recherches, c'est l'interruption INT 19h qui permet de redemarrer le pc.

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 13:55
De plus pour faire marcher sous dos, il va falloir trouver un vieux
compilo 16 bits pour travailler en mode réel. Tu dois pourvoir faire ca
en tasm
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 13:55
J'oubliais de te préciser ...
Si tu es sous DOS, tu es donc en 16bits. Donc tout ce que tu compiles avec les compilateurs actuels c'est grillé (cause 32bits les compilo).
Pour ce qui est de ton erreur, c'est du au fait que tu es mis un nom de plus de 8 caractère a ton fichier.
Sous DOS, ton fichier sera donc tronquer en MonFic~1.exe a la place de MonFichier.exe.
Quoi qu'ils en soit meme en passant le bon nom tronquer, tu auras une erreur du genre "This program can not run in DOS mode".

Sinon pour ce qui est de ton problème, la solution est simple.
Trouve toi un compilo ASM ou C qui gère le 16 bits puis utilises l'interruption 19h ( Warm Reset ).

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 13:57
C'est la journée pour ma poire ca !
Deuxieme fois que je répond la meme chose mais que je postes quelques secondes plus tard!


Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 14:03
J'ai fait le programme, mais marche pas directement sous XP (c'est normal?)


Faudrait essayer depuis le DOS


http://vecchio56.free.fr/reboot.rar
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 14:07
Vi c'est normal, les interruptions sont bloquées sout XP.
On est en mode protégé, c'est bien plus sécurisé.

Je vais tester ton prog vecchio.

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 14:09
Elles sont bloquées?? Pourtant je sais que de la même manière je peux utiliser 21h pour les E/S...
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 14:20
En fait toute les interruptions non sécurisé qui touche plus ou moins les fonctionnalités du BIOS sont interdites sous XP.
Il n'est donc pas impossible que la 21h soit encore effective vu qu'elle permet la gestion des E/S.

Sinon pour ce qui est de ton appli, le résultat est bien marrant sur mon PC.
Ca ne fait que redemarrer le dos et non pas le PC :-).
Bizarre... Pourtant il s'agit bien d'u WarmReset le 19h...

Tu peux me faire la meme chose que reboot.exe mais avec ce code :


__asm {
push bp;
mov ax,04A10h;
mov bx,0;
mov cx,0EBABh;

int 2Fh;
pop bp;
cmp ax,0BABEh;
mov ax,0;
jnz Fin;
inc ax;
Fin:
}

Shell
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 14:26
Pourrais tu aussi me compiler ce code plz, on va tester voir qu'est ce qui marche :-)

;DEBUT

mov ax, 0040h
mov es, ax
mov di, 0072h
mov ax, 1234h
mov [es:di], ax
jmp 0FFFFh:0000h

;FIN

Shell
0
Ethylotek Messages postés 27 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 12 avril 2006
9 juin 2005 à 14:32
merci vecchio ca me va pour mon application


Piero
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 14:34
Ethylotek> Ca marche chez to ? Ca te fais bien rebooter le PC ?

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 14:39
Il veut pas prendre 0FFFF:0000h, il dit que c'est out of range
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 14:47
Uh ????
Pourtant l'offset est bon je vois pas ce qui cloche .....

Voici le code pour un ColdReset, sauf que j'ai pas pu tester faute de compilo 16bits que je ne peux installer.
J'en fait donc appelle a ta gentillesse une dernière fois vecchio (promis ^^) :

MOV AX,0040h
<TT>MOV ES,AX</TT>
<TT>MOV DI,0072h</TT>
<TT>XOR AX,AX</TT>
<TT>STOSW</TT>
<TT>DB 0EAh, 00, 00, 0FFh, 0FFh</TT>

Shell
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
9 juin 2005 à 14:53
J'ai mis reboot2 et reboot3.rar, mais je suis pas sur que c'est ce que
tu veux exactement, parce que le code que tu donnes ne compilerait pas

Et aussi TASM.rar, ya rien a installer normalement pas de problème
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
9 juin 2005 à 15:31
Alors,


Reboot3 marche niquel sauf qu'il n'y a aucun control sur le flush de la mémoire..
Mais bon c'est pas le plus grave.

Reboot2 je l'ai pas tester.

En tous cas Reboot3 va bon, tu peux le prendre Ethylotek.

Merci encore vecchio ^^

Shell
0
Ethylotek Messages postés 27 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 12 avril 2006
10 juin 2005 à 08:58
merci a vous deux c'est bon pour moi
a biento et merci encore


Piero
0
Rejoignez-nous