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

 


Dernière réponse
Sujet : [Pascal] App DOS en plein écran !?
HelloWorld Ha !!! Enfin !!!:sweat:
Ben à nous 2 on aura créé un gros topic !!! :lol:
 
en conclusion : Assembleur POWAAAAAAAAAAAAAAAAAA !!!!:hap::love:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
HelloWorld Ha !!! Enfin !!!:sweat:
Ben à nous 2 on aura créé un gros topic !!! :lol:
 
en conclusion : Assembleur POWAAAAAAAAAAAAAAAAAA !!!!:hap::love:
Doudos Je n'ose pas y CROIRE !!!!
Ça MARCHE !!!
MERCI BEAUCOUP Hello ;)
je desesperais là ...
C'est génial MERCI ENCORE !!
HelloWorld 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 :)
Doudos PLEIN ECRAN ..... noir :sweat:
HelloWorld 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;
Doudos il reste en 80x25
HelloWorld 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;
Doudos 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 :(
HelloWorld 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 ???
Doudos :lol:
toujours pas :cry:
HelloWorld ouai ouai ...
le ';' "normalement" en assembleur c'est les commentaires...
vire les ...
=> Mov AX, 131
Doudos alors ... avec ça :
Mov AX, 131 ;128 + 3
 
Il me signale une syntax error ici (a l'endroit du _) :
Mov AX, 131 ;128_+ 3
Doudos je viens d'essayer ... sans résultat :(
 
ok j'essaie ...

 

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

HelloWorld 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
HelloWorld T'as essayé
Mov AX, 128
???
Doudos 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]

HelloWorld 0Dh ???:??:
pourquoi ???
essaie 0 !!!
ce qui fait 128 une fois dans la fonction ... = 80h ...
Doudos ben g essaye avec 0Dh puis avec 13h mais il reste en 80x25 tout le temps ...
HelloWorld resolution, tu lui as donné quoi comme valeur ?
Doudos 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]

HelloWorld ??? 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 ...)
HelloWorld 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
Doudos un chtit up avant d'aller me pieuter :sleep:
Doudos 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]

HelloWorld j'espere que c bon car la je m'envais !!!
@+ :)
 
(fait une recherche "assembleur inline turbo pascal" )
HelloWorld 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 !!!
Doudos bon ... va falloir trouver une autre soluce !! :(
=> Syntax Error !! :cry:
g peut etre mal capte comment inclure le code assembleur ...
je sais pas !!
HelloWorld 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 :)
Doudos OK !!
Encore Merci pour tout !! ;)

 

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

HelloWorld 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
Doudos 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à :))
HelloWorld 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:
Doudos 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]

HelloWorld 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
HelloWorld 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
Doudos 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:
JPA Comme dit HelloWorld, le plus simple est de créer un raccourci et on édite ses propriétés...
HelloWorld 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 ;)
Doudos Comment faire pour que l'application crée se lance en Plein Ecran lorsqu'on l'execute !?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)