Accueil > Forum > > > > programmation graphique en mode 12h
programmation graphique en mode 12h
samedi 14 mai 2005 à 02:55:08 |
programmation graphique en mode 12h

masta_jigga
|
J'aimerai poser surement une bete question. Comment puis-je faire pour travailler dans le mode 12h (640x480 en 16 couleurs) en accedant directement à la mémoire vidéo et sans utiliser le VESA. (puisque dans ce mode je dépasse 64Ko) Si il n'y a pas moyen de faire cela, j'aimerai qu'on m'explique pourquoi quand j'écris directement dans la memoire en mode 12h de la maniere suivante : mettre un byte (pour donner une couleurou allumer un pixel ) à la position de l'écran ES:[ DI] en incrémentant DI de 1 à chaque fois, j'obtiens à la place d'une ligne plusieurs point écarté. j'ai éssayé d'agrandir la valeur de mon byte (ex: al) et je n'obtient plus des point mais un petite ligne. ce serait cool si quelqu'un pourrai m'expliquer le pourquoi de la chose. je re-précise que j'ai initialisé le segment à 0A000h et que je suis en mode 12 h
Le but de ceci est de me permettre d'afficher par exemple un rectangle d'une couleur donné dans ce mod evideo mais d'une maniere instantané puisqu'en utilisant les int. ça prend beaucoup trop de temps. Merci d'avance.
|
|
vendredi 20 mai 2005 à 03:14:27 |
Re : programmation graphique en mode 12h

Gobillot
|
Les paramètres sont dans la pile
(c'est un programme pour Turbo Basic)
(couleur, position X, position Y, Longeur X, Longeur Y)
DEB: PUSH BP
MOV BP, SP
PUSH DS
; couleur dans CH
LDS SI, [BP+22] ; couleur
MOV CH, [SI] ; dans CH
; controleur graphique: registre 1 = Enable Set/Reset
; la valeur inscrite provient du registre Set/Reset
MOV DX, 3CEh
MOV AX, 0F01h
OUT DX, AX
; controleur graphique: registre 0 = Set/Reset
; détermine la valeur pour les différents plans de bits
XOR AX, AX
MOV DS, AX
MOV AH, CH
OUT DX, AX
; calcul adresse vidéo
MOV SI, 44Ah ;nombre colonnes / ligne
MOV CX, [SI]
PUSH CX
LDS SI, [BP+14] ; position Y
LODSW
; dans AX
MUL CX
LDS SI, [BP+18] ; position X
MOV DI, [SI] ; dans DI
MOV DX, DI ; et dans DX
AND DX,7
MOV CL,3
SHR DI, CL
ADD DI, AX
MOV AX, 0A000h
MOV ES, AX
; masque et nombre de bits
LDS SI, [BP+10] ; Longueur X
LODSW
; dans AX
DEC AX
ADD AX, DX
MOV BX, 0FF80h
MOV CX, DX
SHR BH, CL ; BH = masque début
MOV CX, AX
AND CL, 7
SAR BL, CL ; BL = masque fin
MOV CL, 3
SHR AX, CL
MOV CX, AX
; controleur graphique: registre 8 = Bit Mask
MOV DX, 3CEh
MOV AL, 8
OUT DX, AL
INC DX
LDS SI, [BP+6] ; Longueur Y
LODSW
; dans AX
POP
BP
; reprise nb colonne/ligne
DEC BP
SUB BP, CX
; début Ligne
P10: PUSH AX
PUSH CX
; masque début
M10: MOV AL, BH
JCXZ M30
OUT DX, AL
MOV AH, ES:[DI] ; chargement des reg. Latches
STOSB
; milieu ?
DEC CX
JZ M35
; masque fin
M20: MOV AL, 0FFh
OUT DX, AL
M25: REP STOSB
JMP short M35
M30: MOV AL, BH
AND AL, BL
JMP $+4
M35: MOV AL, BL
OUT DX, AL
MOV AH, ES: [DI]
STOSB
; boucle
P20: POP CX
ADD DI, BP
POP AX
DEC AX
JNZ P10
; on remet les registres
P30: DEC DX
MOV AX,1
OUT DX, AX
MOV AX, 0FF08h
OUT DX, AX
FIN: POP DS
POP BP
Daniel
|
|
samedi 28 mai 2005 à 02:05:18 |
Re : programmation graphique en mode 12h

masta_jigga
|
merci de m'avoir répondu Daniel. Comme je suis débutant, c'est plutot difficile pour moi de déchiffrer ton code mais, j'essayerai à partir de là pour un peu avancé.
|
|
samedi 3 décembre 2005 à 23:57:58 |
Re : programmation graphique en mode 12h

Coralsnake
|
salut ca fait longtempt qu'il n'y à plus de post ici mais je vais quand même
essayer ...
as tu regler ton probleme car j'ai le meme les pixel sont eclaté et je sais pas pourquoi ?
merci d'avance un debutant
|
|
mercredi 4 janvier 2006 à 23:45:02 |
Re : programmation graphique en mode 12h

BLUEBIBUBBLE
|
Le mode 12h est en 16 couleurs (4bits). Dans ce mode la carte video est composée de 4 plans de 38400 octets chacun (640 * 480) / 8 Le pixel a la position 0,0 est composé du: -bit 7 de l'octet 0 du plan 0 -bit 7 de l'octet 0 du plan 1 -bit 7 de l'octet 0 du plan 2 -bit 7 de l'octet 0 du plan 3 Le pixel a la position 1,0 est composé du: -bit 6 de l'octet 0 du plan 0 -bit 6 de l'octet 0 du plan 1 -bit 6 de l'octet 0 du plan 2 -bit 6 de l'octet 0 du plan 3 etc...
Port 3C4h index 2 (r/W): Sequencer: Map Mask Register
bit 0 Autorize écriture plan 0 si 1
1 Autorize écriture plan 1 si 1
2 Autorize écriture plan 2 si 1
3 Autorize écriture plan 3 si 1 Il y a plusieurs technique pour écrire dans la ram video, selon le travail a effectuer: -1 seul pixel a écrire -une zone de couleur unie -une zone de couleur différente. -etc... Un liens pour l'utilisation des registres de la carte graphique: [ Lien ]A+
|
|
jeudi 5 janvier 2006 à 01:56:04 |
Re : programmation graphique en mode 12h

Gobillot
|
La couleur d'un pixel est composé par les 4 bits correspondants des 4 plans de bits,
ce qui donne 16 couleurs possibles.
Controleur Graphique:
Registre 1: Enable Set/Reset
Pour l'utilisation du mode Write 0, les bits 0 à 3 déterminent si la valeur inscrite
dans les 8 bits de l'octet d'un plan de bit adressé doit être extraite de l'octet CPU
ou du Registre Set/reset
c'est ce mode qui est choisi, les 4 bits sont positionnés à 1, ce qui veut dire qu'en
une seule opération, 8 bits pourront être traités en même temps.
Registre 0: Set/Reset
c'est ici qu'on met la couleur une seule fois au début.
Registre 8: Bit Mask
ensuite on joue sur les masques pour déterminer les bits que l'on va traiter.
3 cas sont à prévoir:
- le masque de début intervient pour les premiers bits qui ne sont pas à traiter,
- masque FFh pour traiter tous les octets complets entre début et la fin
cas pas toujours présent d'où le test milieu ?
- masque de fin pour les derniers bits qui sont pas à traiter.
pour modifier un octet:
- on charge le masque correspondant
- on lance une lecture
qui petmet de Lire les 4 registres Latches correspondants
ceux ci sont seulement utilisés en interne
ça évite de modifier les bits non traités (grace au masque)
- on lance une écriture d'un octet complet
les 4 Registres Latches sont écrits dans la mémoire vidéo
Il n'y a plus qu'à boucler Ligne par Ligne jusqu'à la fin.
puis on remet les Registres à leur valeur par défaut.
et c'est fini
Daniel
|
|
Cette discussion est classée dans : directement, programmation, graphique, mode, 12h
Répondre à ce message
Sujets en rapport avec ce message
PIC:Debug&programmation probleme [ par flagyg ]
Bonjour,J'ai fait un programme sur un PIC 16F873Je l'ai développé en mode debugger avec mplab et l'interface ronde de microship.Il marche a merveille
assembleur [ par Rotsycs ]
slt! j'ai un petit souci à propos de la programmation assembleur. prog: il s'agit d'un programme qui tester un chiffre entrée au clavier. si tu écrit
Aide pour utilisation d'un LCD graphique + PIC 16F886 [ par radiumx ]
Bonsoir à tous, Voilà, dans le cadre d'un projet, je dois réaliser une mini console de jeu à l'aide d'une écran LCD graphique 128*64 (de marque cct
programmation en assembleur [ par isai2010 ]
salut, je suis une nouvelle membre du forum,veuillez accepter mon amitié. s'il vous plait j'ai besoin de votre aide,j'ai un projet à rendre d'urgence
Logique d'utilisation du registre DS (mode réel) [ par powel42 ]
Bonjour à tous, je suis curieux de savoir quelle est la "bonne" manière d'utiliser le segment DS (s'il y en a une). Lorsque l'on démarre sous DOS
Des codes, un programmateur oui mais après [ par OWLBLACK ]
En tant que débutant, je me suis lancé dans la programmation des pics pour fabriquer des animations lumineuses à leds. Je trouve des modèles de pics,
Programmation assembleur [ par DIJONCTER ]
Bonjour, Je voudrais savoir si il y aurait une personne qui puisse m'aider en programmation assembleur en effet je suis débutant sur ce type de progra
problème avec programmation pic16F690 [ par bibou1234 ]
Bonjour j'ai un problème au niveau de la programmation en assembleur d'un pic16F690 J'ai trois fonctions a testé -la détection des defauts pour la pre
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|