[Pascal] App DOS en plein écran !?

App DOS en plein écran !? [Pascal] - Programmation

Marsh Posté le 18-04-2001 à 16:40:09    

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

Reply

Marsh Posté le 18-04-2001 à 16:40:09   

Reply

Marsh Posté le 18-04-2001 à 16:53:08    

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 ;)

Reply

Marsh Posté le 18-04-2001 à 17:03:34    

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

Reply

Marsh Posté le 18-04-2001 à 17:08:30    

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:

Reply

Marsh Posté le 18-04-2001 à 17:12:50    

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

Reply

Marsh Posté le 18-04-2001 à 17:18:46    

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

Reply

Marsh Posté le 18-04-2001 à 17:22:56    

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]

Reply

Marsh Posté le 18-04-2001 à 17:40:49    

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:

Reply

Marsh Posté le 18-04-2001 à 17:46:45    

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à :))

Reply

Marsh Posté le 18-04-2001 à 17:57:02    

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

Reply

Marsh Posté le 18-04-2001 à 17:57:02   

Reply

Marsh Posté le 18-04-2001 à 17:57:05    

OK !!
Encore Merci pour tout !! ;)

 

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

Reply

Marsh Posté le 18-04-2001 à 18:04:47    

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 :)

Reply

Marsh Posté le 18-04-2001 à 18:44:58    

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

Reply

Marsh Posté le 18-04-2001 à 18:57:45    

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 !!!

Reply

Marsh Posté le 18-04-2001 à 19:00:24    

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

Reply

Marsh Posté le 18-04-2001 à 20:25:43    

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]

Reply

Marsh Posté le 19-04-2001 à 01:44:23    

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

Reply

Marsh Posté le 19-04-2001 à 10:03:20    

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

Reply

Marsh Posté le 19-04-2001 à 10:12:17    

??? 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 ...)

Reply

Marsh Posté le 19-04-2001 à 14:09:15    

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]

Reply

Marsh Posté le 19-04-2001 à 14:15:40    

resolution, tu lui as donné quoi comme valeur ?

Reply

Marsh Posté le 19-04-2001 à 14:18:41    

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

Reply

Marsh Posté le 19-04-2001 à 14:22:23    

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

Reply

Marsh Posté le 19-04-2001 à 14:25:51    

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]

Reply

Marsh Posté le 19-04-2001 à 14:27:24    

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

Reply

Marsh Posté le 19-04-2001 à 14:30:05    

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

Reply

Marsh Posté le 19-04-2001 à 14:30:15    

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

 

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

Reply

Marsh Posté le 19-04-2001 à 14:34:13    

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

Reply

Marsh Posté le 19-04-2001 à 14:37:09    

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

Reply

Marsh Posté le 19-04-2001 à 14:41:45    

:lol:
toujours pas :cry:

Reply

Marsh Posté le 19-04-2001 à 14:46:44    

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 ???

Reply

Marsh Posté le 19-04-2001 à 14:53:47    

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 :(

Reply

Marsh Posté le 19-04-2001 à 14:59:34    

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;

Reply

Marsh Posté le 19-04-2001 à 15:14:02    

il reste en 80x25

Reply

Marsh Posté le 19-04-2001 à 15:19:04    

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;

Reply

Marsh Posté le 19-04-2001 à 15:25:10    

PLEIN ECRAN ..... noir :sweat:

Reply

Marsh Posté le 19-04-2001 à 15:27:45    

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 :)

Reply

Marsh Posté le 19-04-2001 à 15:36:04    

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

Reply

Marsh Posté le 19-04-2001 à 17:28:33    

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
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed