Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1228 connectés 

  FORUM HardWare.fr
  Programmation

  [Pascal] App DOS en plein écran !?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Pascal] App DOS en plein écran !?

n°25697
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 16:40:09  profilanswer
 

Comment faire pour que l'application crée se lance en Plein Ecran lorsqu'on l'execute !?

mood
Publicité
Posté le 18-04-2001 à 16:40:09  profilanswer
 

n°25705
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 16:53:08  profilanswer
 

tu veux le faire depuis ton prog obligatoirement ???
parce que sinon un clic droit sur ton exe ... proprietes ... plein ecran ...
sinon *"*je pense*"* qu'un moyen simple est de changer la résolution ... (y'a ptet mieux ... ;))
au debut de ton prog tu changes en ... oups ... oublié ...
si tu peux inclure de l'assembleur (genre asm ...) c'est tres facile ... (3 lignes)
va bien y avoir un gars qui va te les filler ;)

n°25709
JPA
Posté le 18-04-2001 à 17:03:34  profilanswer
 

Comme dit HelloWorld, le plus simple est de créer un raccourci et on édite ses propriétés...

n°25713
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 17:08:30  profilanswer
 

j'aimerai vraiment que le prog se lance en plein écran des qu'on l'execute !! :cry:
Il doit bien avoir un moyen :??: Non !? :sweat:

n°25715
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 17:12:50  profilanswer
 

eh ben change la résolution !!!
ragarde si t'as pas une librairie qui permet ca
t'as quoi comme compilo ??,
sinon 3 lignes d'assembleurs ... tu les veux les 3 lignes

n°25719
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 17:18:46  profilanswer
 

je te les donne quand meme ...
 
site : http://www.pageasm.com/tutd/base/base4.htm#3
 
je pense que c'est le mode 00h (mode texte, 25 lignes de 40 caracteres) (mais tu peux passer en 80*25, c'est sympa aussi)
 
donc:
 
asm mov ah,0
asm mov al,0 ;ton "numero" de résolution
 
asm int 10 ;change la resolution
 
*asm* : la syntaxe de ton compilo pour inclure de l'assembleur
 
pour les puristes :  
    asm mov ax,0

n°25722
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 17:22:56  profilanswer
 

Merci HelloWorld !!
j'utilise Turbo Pascal 7 fr
 
Sinon ton lien marche po :(
Tu peux me le refaire !? stp

 

[edit]--Message édité par Doudos--[/edit]

n°25733
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 17:40:49  profilanswer
 

ah ???
ben www.pageasm.com
rubrique assembleur DOS
dans les bases ... les interruptions ... interruptions graphiques ...
t'as essayé  
    asm mov ax,0
    asm int 10
il dit quoi le compilo ???
 
si ca marche tu te fait une petite fonction ChangeResolution ...
tu déclare des constantes pour les résolutions (RES_40_25 := 0)
et tu les passes à ta fonction qui fait ce petit code assembleur
comme ca t'as un code lisible ... mais bon t'es assez grand !:sol:

n°25738
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 17:46:45  profilanswer
 

ton site marche pas !! :cry: (page non dispo)
 
Sinon va falloir que tu m'expliques comment inclure du code assembleur parce que je m'en sors pas là !! :sweat:
(je debutes !! fo bien passer par là :))

n°25743
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 17:57:02  profilanswer
 

ben en Delphi (c du pascal) il (me semble, c'est loin !) qu'il fallait mettre asm devant mon instruction assembleur pour que ca marche.
donc la devant chaque instruction assembleur essaie de mettre asm
ton compilo c'est de chez Borland c'est ca ??? ca devrait etre pareil alors ...
 
on utilise la fonction 10 de ton PC (en tres simple hein) qui te permet de changer la resolution de ta carte video
c'est ton PC qui le fait et pas le DOS !!! (c'est dans les entrailles de ta carte video ... :))
cette fonction accepte 2 parametres qui sont passé par ... une sorte de variable globale : AX (un registre du processeur)
 
RHââââ !!! il marche plus le site !!! c pour ca que t'as rien !!!
il marchait y'a 1 heure !!! bah , ca va revenir
 
et donc ben en parametre tu met 0 pour cette résolution
et donc :
 
asm MOV AX,0  <= parametre
asm INT 10    <= fonction numero 10 du PC (m'assassinez pas les gars, je fait simple !!!;))
 
bon, ben ...
http://asmbeginer.com/int/10H.HTM
http://asmbeginer.com/emag/asmbe1.txt
http://www.multimania.com/abcp/ref [...] 0fct4fss02
http://www.chez.com/minso/sos.php
http://cldup.multimania.com/vesa2.htm
 
:P

mood
Publicité
Posté le 18-04-2001 à 17:57:02  profilanswer
 

n°25745
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 17:57:05  profilanswer
 

OK !!
Encore Merci pour tout !! ;)

 

[edit]--Message édité par Doudos--[/edit]

n°25748
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 18:04:47  profilanswer
 

http://www.ifrance.com/dalsim/ASM3.HTM
 
Deuxième programme
Cette fois, le programme fait au moins quelque chose de visible. Il affiche un texte, le fameux Hello World. Tout d'abord, voici le fichier texte que vous assemblerez (voir précédent chapitre pour utiliser les programmes).
 
MOV AX,03h (mode texte 80x25 (13h est le mode 320x200x256)
INT 10h
 
 
met ca dans une fonction genre
 
    ChangeResolution(resolution : integer)
    begin
        asm MOV AX,resolution
        asm INT 10
    end;
 
le pascal c'est loin pour moi alors ca doit etre imvomplet
declare ensuite 2 ou 3 constante (je sais pas faire en pascal), genre:
 
RES_40_20 : integer := 0;
 
et comme ca t'auras un code pas trop illisible :)

n°25762
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 18:44:58  profilanswer
 

bon ... va falloir trouver une autre soluce !! :(
=> Syntax Error !! :cry:
g peut etre mal capte comment inclure le code assembleur ...
je sais pas !!

n°25766
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 18:57:45  profilanswer
 

ca serait pas aussi trivial que ca alors :(
 
http://www.multimania.com/jmy51/in [...] d%20Pascal
 
Uses Dos;  
Var  
   { Déclaration de Regs en tant que ; registres du processeur }
   Regs : Registers;  
 
 
Type Registers = Record  
   Case Integer of  
        0 : (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags : Word);  
        1 : (AL, AH, BL, BH, CL, CH, DL, DH : Byte);  
   End;  
L'accès à Carry Flag (CF) se fait alors de cette façon :  
 
   Regs.Flags And Fcarry
L'Assembleur Inline est nettement plus simple d'emploi : il suffit de reprendre son code Assembleur tel quel  
 
   Asm  
      Mov AH, 00h  
      Int 33h  
 
      Cmp AX, 00h  
      Je @@NotMouse  
 
      Mov NbrBoutons, BX  
 
      Jmp @@Fin  
 
      @@NotMouse: Mov NbrBoutons, 0  
 
      @@Fin:  
   End;  
La seule différence réside dans les labels qui doivent être précédés de @@ en Pascal
 
ben si alors !!! :) :) :)
 
=> Asm  
      MOV AX, 00h  
      INT 10
   End;
 
et voila !!!

n°25767
HelloWorld
Salut tout le monde!
Posté le 18-04-2001 à 19:00:24  profilanswer
 

j'espere que c bon car la je m'envais !!!
@+ :)
 
(fait une recherche "assembleur inline turbo pascal" )

n°25777
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 18-04-2001 à 20:25:43  profilanswer
 

Bon ...
ça marche ... à moitié !! :sweat:
g reussi à inclure ça :
Asm
  Mov ah, 00h
  Mov al, 13h
  Int 10h
End;

 
Ça revient au meme de faire :??: !??
Asm
  Mov ax, 13h
  Int 10h
End;

 
Mais le probleme, c'est que lorsqu'il change la résolution  ... je suis plus en mode texte mais en mode graphique donc le texte qu'affichait mon prog n'apparait plus !! :(
 
Donc, HelloWorld ... je fais encore appel à toi ...
Merci et @+

 

[edit]--Message édité par Doudos--[/edit]

n°25820
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 01:44:23  profilanswer
 

un chtit up avant d'aller me pieuter :sleep:

n°25846
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 10:03:20  profilanswer
 

Mais tu changes quand de résolution ???
si tu changes apres avoir écrit des trucs faut faire une petite modif pour pas qu'il t'efface l'écran quand il change la résolution.
Sinon, la première ligne de ton programme doit servir à changer la résolution
D'apres ce que j'ai lu hier, les 4 premiers modes sont des modes textes : 0,1,2,3 (0 et 1 : 40*25 ; 2 et 3 : 80 * 25)
le mode 13h est un mode graphique ...
mais il me semble que les fonctions standards d'écriture de texte fonctionnent quand meme ...
quoi qu'il en soit elles fonctionnent apres que t'ai changé la résolution
pour ne pas qu'il t'efface l'écran lors du changement, y'a un bit à positionner ... je sais plus lequel ...
cherche une info genre "preserve bit"
au fait www.pageasm.com refonctionne, il est en francais :)
il dit d'ailleurs que maintenant c'est :
http://www.pageasm.fr.fm
=> tutoriel DOS - tutoriel de base - interruptions - interruptions graphiques
 
un autre bon site : ABCP
 
http://www.multimania.com/abcp/ref [...] int10fct00
 
 
AH = 00h
AL = mode vidéo et effacement de l'écran:  
        00h: texte 40x25, N&B  
        01h: texte 40x25, 16 couleurs  
        02h: texte 80x25, N&B  
        03h: texte 80x25, 16 couleurs  
        04h: graphique 320x200, 4 couleurs  
        05h: graphique 320x200, 4 gris  
        06h: graphique 640x200, 4 couleurs  
        07h: carte monochrome??  
        0Dh: graphique 320x200, 16 couleurs (à partir de EGA)  
        0Eh: graphique 640x200, 16 couleurs (à partir de EGA)  
        0Fh: graphique 640x350, N&B (à partir de EGA)  
        10h: graphique 640x350, 16 couleurs (à partir de EGA)  
        11h: graphique 640x480, 2 couleurs (à partir de MCGA)  
        12h: graphique 640x480, 16 couleurs (à partir de VGA)  
        13h: graphique 320x200, 256 couleurs (à partir de MCGA)  
        Bit 7 à 1 (Ajouter 80h): Ne pas effacer l'écran

n°25850
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 10:12:17  profilanswer
 

??? apparement c'est limité dans la taille les réponse  :P
donc je continue
 
il suffit de rajouter 80h (80 en hexadecimal,128 en decimal)
 
donc tu fait
 
procedure ChangeRes(Resolution : integer);
begin
    resolution := resolution + 128;
    Asm  
      Mov AX, resolution  
      Int 10h  
    End;  
end;
:) et normalement il t'efface plus l'écran !!! :)
 
(AX est sur 16 bits : les 8 à gauche = AH, les 8 à droite = AL)
(comme nous AH=0, eh ben AX c'est pareil que AL)
(sauf que comme AX est sur 16 bits, et que le type integer aussi, ben on est sur que le compilo il gueulera pas :
MOV AL,resolution : il devrait accepter mais tu dois surement avoir un warning comme quoi il y a perte de données ... (pour lui tu met 16 bits dans 8 bits : t'en perts 8 ...)

n°25942
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:09:15  profilanswer
 

g fais ce que tu as dit ...
procedure ChangeRes(Resolution : integer);  
begin  
    resolution := resolution + 128;  
    Asm  
      Mov AX, 13h  
      Int 10h  
    End;  
end;

puis plus rien ...
il change meme pas le mode d'affichage, il reste en 80x25 par defaut !!

 

[edit]--Message édité par Doudos--[/edit]

n°25944
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:15:40  profilanswer
 

resolution, tu lui as donné quoi comme valeur ?

n°25945
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:18:41  profilanswer
 

ben g essaye avec 0Dh puis avec 13h mais il reste en 80x25 tout le temps ...

n°25947
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:22:23  profilanswer
 

0Dh ???:??:
pourquoi ???
essaie 0 !!!
ce qui fait 128 une fois dans la fonction ... = 80h ...

n°25948
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:25:51  profilanswer
 

euh ... ça change rien !!! :??: :sweat:
 
C'est ici que g mis '0Dh' ou '13h' :
Mov AX, 0Dh (ou Mov AX, 13h)
 
En fait, depuis que je l'ai mis dans une procedure g l'impression que ça n'a aucune action !!

 

[edit]--Message édité par Doudos--[/edit]

n°25949
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:27:24  profilanswer
 

T'as essayé
Mov AX, 128
???

n°25951
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:30:05  profilanswer
 

Putain ca y est ca me revient ...
c'est le mode 3 le mode classique ...
mais du coup je me demande si ca va passer en plein ecran ...
essaies :
Mov AX, 131 ;128 + 3

n°25952
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:30:15  profilanswer
 

je viens d'essayer ... sans résultat :(
 
ok j'essaie ...

 

[edit]--Message édité par Doudos--[/edit]

n°25955
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:34:13  profilanswer
 

alors ... avec ça :
Mov AX, 131 ;128 + 3
 
Il me signale une syntax error ici (a l'endroit du _) :
Mov AX, 131 ;128_+ 3

n°25958
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:37:09  profilanswer
 

ouai ouai ...
le ';' "normalement" en assembleur c'est les commentaires...
vire les ...
=> Mov AX, 131

n°25963
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:41:45  profilanswer
 

:lol:
toujours pas :cry:

n°25965
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:46:44  profilanswer
 

ca fait rien du tout ???
c'est la faute a windows ...:fou: :gun:
va falloir ruser alors ...
Bon ...  
ça marche ... à moitié !!  
g reussi à inclure ça :  
Asm  
  Mov ah, 00h  
  Mov al, 13h  
  Int 10h  
End;  
 
en fait ca effacait l'écran ...
mais estce que ca a changé la résolution ???
t'es passé en plein écran ???

n°25969
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 14:53:47  profilanswer
 

Oui lorsque g mis ça direct (sans le mettre dans une procedure)
Asm
  Mov Ah, 00h
  Mov Al, 13h
  Int 10h
End;

il change de resolution (320x200, 256 color) mais g un ecran noir ... puis plus rien ... l'application s'execute mais il n'affiche rien a l'ecran :(

n°25972
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 14:59:34  profilanswer
 

vivi c'est normal l'écran noir : il a tout effacé
bon ... en fait quand on se trouve en mode 3 (80*25) il semble que windows décide que faut pas executer en plein ecran ...
alors 1° "ruse" :
 
fait un changement bidon de resolution au debut du programme et revient en mode 3
windows il fait quoi, il te le laisse en plein ecran ou il te le remet en fentre ???
 
=> au tout debut de ton programme :
 
Asm  
  Mov Ah, 00h  
  Mov Al, 00h  
  Int 10h
  Mov Al, 03h  
  Int 10h  
End;

n°25982
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 15:14:02  profilanswer
 

il reste en 80x25

n°25983
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 15:19:04  profilanswer
 

hum ...
va falloir passer en mode graphique alors ...
80*25 semble etre 640*350
10h: graphique 640x350, 16 couleurs (à partir de EGA)
essai de passer dans ce mode au debut et regarde si ton programme affiche du text ...
Asm  
  Mov Ah, 00h  
  Mov Al, 10h  
  Int 10h  
End;

n°25985
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 15:25:10  profilanswer
 

PLEIN ECRAN ..... noir :sweat:

n°25987
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 15:27:45  profilanswer
 

bah oui ... faut rajouter 128 !!!
=>
Asm  
  Mov AX, 138  
  Int 10h  
End;
 
bon j'espere que c'est bon car fo que j'y aille et de toute facon je suis à court d'idee apres :)

n°25990
Doudos
Guns 4 Show Knives 4 a Pro
Posté le 19-04-2001 à 15:36:04  profilanswer
 

Je n'ose pas y CROIRE !!!!
Ça MARCHE !!!
MERCI BEAUCOUP Hello ;)
je desesperais là ...
C'est génial MERCI ENCORE !!

n°26034
HelloWorld
Salut tout le monde!
Posté le 19-04-2001 à 17:28:33  profilanswer
 

Ha !!! Enfin !!!:sweat:
Ben à nous 2 on aura créé un gros topic !!! :lol:
 
en conclusion : Assembleur POWAAAAAAAAAAAAAAAAAA !!!!:hap::love:


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [Pascal] App DOS en plein écran !?

 

Sujets relatifs
DOS , fichiers BATCH et parametres ...[C] les caracteres accentués dans une console DOS
[JAVA] - Problème de rafraîchissement d'écran !!!autorun et plein ecran avec windows media player
[ C / DOS ] Listing d'un repertoire ?Capture d'ecran VC++
[C] : Rediriger sorties écran vers l'imprimante ?Script de commande ( DOS ou W2K ) / Fichier & Variable ...
[BATCH] Commandes DOS pour lire dans 1 fichier HELP !!! 
Plus de sujets relatifs à : [Pascal] App DOS en plein écran !?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR