begin process at 2012 05 24 03:02:29
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Applications ms-dos

 > GESTION DE LA PALETTE GRAPHIQUE ET AFFICHAGE DE TOUTES LES COULEURS DE LA PALETTE , CENTRÉ ET CLASSÉ PAR COULEURS EN MODE 13H

GESTION DE LA PALETTE GRAPHIQUE ET AFFICHAGE DE TOUTES LES COULEURS DE LA PALETTE , CENTRÉ ET CLASSÉ PAR COULEURS EN MODE 13H


 Information sur la source

Note :
Aucune note
Catégorie :Applications ms-dos Niveau :Débutant Date de création :03/04/2005 Vu / téléchargé :3 856 / 186

Auteur : acidcrasher

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Cette source gerent les 256 couleurs de la palette graphique en mode 13h, cree 64 tons de rouge , 64 tons de vert, 64 tons de bleu et 64 tons de gris .
Puis une fois les couleurs initialisé dans la palette les affiches, classés par couleur et centré .

Ce code est fait pour fasm, pour les autres assembleur quelques modification minime sont a apportés .

Source

  • MOV AX, 13h ; passage en mode 13h
  • INT 10h
  • debut:
  • MOV DX, 03C8h
  • XOR AX, AX
  • OUT DX, AL ; initialisation de la palette
  • INC DX
  • MOV CX, 64
  • rouge:
  • OUT DX, AL ; 64 tons de rouge, 0 de vert,0 de bleu
  • PUSH AX
  • XOR AX, AX
  • OUT DX, AL
  • OUT DX, AL
  • POP AX
  • INC AX
  • LOOP rouge
  • MOV CX,64
  • vert:
  • PUSH AX
  • XOR AX,AX
  • OUT DX, AL ; 64 tons de vert, 0 de rouge , 0 de bleu
  • POP AX
  • OUT DX, AL
  • PUSH AX
  • XOR AX,AX
  • OUT DX, AL
  • POP AX
  • INC AX
  • LOOP vert
  • MOV CX,64
  • bleu:
  • PUSH AX
  • XOR AX,AX
  • OUT DX, AL ;64 tons de bleu, 0 de rouge , 0 de vert
  • OUT DX, AL
  • POP AX
  • OUT DX, AL
  • INC AX
  • LOOP bleu
  • MOV CX,64
  • gris:
  • OUT DX, AL
  • OUT DX, AL ; 64 tons de rouge , 64 tons de vert et 64 tons
  • OUT DX, AL ; de bleu donne du gris , donc on a 64 tons de
  • INC AX ; gris
  • LOOP gris
  • MOV CX,64
  • MOV AX,0A000h ; 0a000h est l'adresse de la carte video
  • MOV ES,AX ; on ne peut pas faire de mov es, 0a000h donc
  • ; on utilise AX
  • MOV DI,16032 ; on commence au pixel 16032 et on va ecrir sur
  • MOV CX,100 ; 100 ligne pour que notre palette de couleur
  • ; soit centré au millieu de l'ecrant
  • ; rappel : pour obtenir le numero d'un pixel =
  • ; [y*320] + x
  • ligne:
  • XOR BX,BX ; on commence a la couleur 0 et on sauvegarde
  • PUSH DI ; DI
  • pix:
  • MOV [ES:DI],BX ; on ecrit le pixel .
  • INC DI ; on incremente DI de 1 .
  • INC BX ; on incremente BX (vouleur) de 1 .
  • CMP BX,255 ; on verifi qu'on ne depasse pas les 256 couleurs
  • JNE pix ; autorisé par le mode 13h , et si on ne depasse
  • ; pas on continue .
  • POP DI ; on fait revenir DI et on lui rajoute 320, donc
  • ADD DI,320 ; une ligne puisque en mode 13h l'ecrant fait
  • LOOP ligne ; 320x200 , et on retourne a "ligne" pour continué
  • ; a dessiner les pixels et ca pour 100 ligne
  • ; ce qui est déclarer plus haut , docn regarder
  • ; un peut plus haut si vous ne comprener pas
  • ; pourquoi
  • XOR AX, AX ; on attend l'appui d'une touche pour continuer
  • INT 16H ; (16h = interruption clavier)
  • MOV AX, 03H ; on repasse en mode texte
  • INT 10H
  • RET ; et on rend la main au dos
MOV     AX, 13h	               ; passage en mode 13h
INT	10h		

debut:
	
MOV     DX, 03C8h	
XOR     AX, AX		
OUT     DX, AL		                  ; initialisation de la palette
INC     DX		

MOV     CX, 64	
	
rouge:	

OUT     DX, AL		        ; 64 tons de rouge, 0 de vert,0 de bleu
PUSH    AX		
XOR     AX, AX		
OUT     DX, AL		
OUT     DX, AL		
POP     AX		
INC     AX		
LOOP    rouge		

MOV     CX,64		
	
vert:
PUSH    AX
XOR     AX,AX
OUT     DX, AL		      ; 64 tons de vert, 0 de rouge , 0 de bleu
POP     AX		
OUT     DX, AL
PUSH    AX
XOR     AX,AX		
OUT     DX, AL		
POP     AX		
INC     AX		
LOOP    vert		

MOV     CX,64		
	
bleu:
PUSH    AX
XOR     AX,AX
OUT     DX, AL	              ;64 tons de bleu, 0 de rouge , 0 de vert	
OUT     DX, AL
POP     AX	
OUT     DX, AL				
INC     AX		
LOOP    bleu		

MOV     CX,64
	
gris:
OUT     DX, AL			
OUT     DX, AL	           ; 64 tons de rouge , 64 tons de vert et 64 tons
OUT     DX, AL	     ; de bleu donne du gris , donc on a 64 tons de 	
INC     AX		         ; gris
LOOP    gris		

MOV     CX,64
        	
	

	

MOV     AX,0A000h                ; 0a000h est l'adresse de la carte video
MOV     ES,AX                    ; on ne peut pas faire de mov es, 0a000h donc
                                 ; on utilise AX

MOV     DI,16032                 ; on commence au pixel 16032 et on va ecrir sur
MOV     CX,100                   ; 100  ligne pour que notre palette de couleur
		      ; soit centré au millieu de l'ecrant
		; rappel : pour obtenir le numero d'un pixel =
				; [y*320] + x




ligne:
XOR     BX,BX                   ; on commence a la couleur 0 et on sauvegarde
PUSH    DI                      ; DI

pix:
MOV     [ES:DI],BX              ; on ecrit le pixel .
INC     DI                      ; on incremente DI de 1 .
INC     BX                      ; on incremente BX (vouleur) de 1 .
CMP     BX,255                 ; on verifi qu'on ne depasse pas les 256 couleurs
JNE     pix                     ; autorisé par le mode 13h , et si on ne depasse
	                        ; pas on continue .

POP     DI                      ; on fait revenir DI et on lui rajoute 320, donc
ADD     DI,320                  ; une ligne puisque en mode 13h l'ecrant fait
LOOP    ligne                  ; 320x200 , et on retourne a "ligne" pour continué
	                        ; a dessiner les pixels et ca pour 100 ligne
	                        ; ce qui est déclarer plus haut , docn regarder
	                        ; un peut plus haut si vous ne comprener pas
	                        ; pourquoi




        



XOR     AX, AX                  ; on attend l'appui d'une touche pour continuer
INT     16H                     ; (16h =  interruption clavier)

MOV     AX, 03H                 ; on repasse en mode texte
INT     10H
        
RET                              ; et on rend la main au dos


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip ASYNC LIAISON INTERNET EN MODE ASYNCHRONE WININET par ToutEnMasm
Source avec une capture LECTURE CHAINE ET COMPARAISON[MASM] par w4kfu
Source avec une capture LECTURE TOUCHE CLAVIER[MASM] par w4kfu
Source avec Zip UN RESOLVEUR SUDUKO AVEC ASSEMBLEUR NASM par msavyo1
Source avec Zip TESTEUR DE COMPATIBILITTÉ VESA (SUPER VGA) par bofur

Commentaires et avis

Commentaire de roidesrats le 09/04/2005 01:02:41

merci pour cette source, c'est exactement le genre de source que je recherchais, très efficace et utile, merci encore.

A part ca, j'ai une petite question à propos des notations quand on utilise ES.
Lorsqu'on veut ecrire MOV [DS:DI],BX
on peut ecrire MOV [DI], BX.
Ce que je voulais savoir, s'il vous plait, c'est quelles sont les notations équivalentes à "MOV  [ES:DI],BX" ?
(en fait sur mon asm j'ai dû le remplacer l'utilisation de ES par DS afin que ca fonctionne. et cette question pour savoir si c'est ES ou la notation qui plaisait pas trop à l'asm, voilà :) )

Commentaire de acidcrasher le 10/04/2005 22:14:26

merci pour ce commebtaire ca fait plaisir :) .

pour ta question , la reponse est simple :

j'utilise Fasm , et la syntaxe est légérement differente suivant les assembleur .

par exemple si tu utilise Nasm la syntaxe est la suivante :

MOV  DS:[DI], BX

au lieu de :


MOV  [DS:DI],  BX

sous Fasm .

voila , j'espere avoir repondu a ta question , sinon n'hesite pas a demander des details ;)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,746 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales