IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Assembleur Discussion :

Linear Frame Buffer


Sujet :

Assembleur

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut Linear Frame Buffer
    Bonjour à tous!

    J'ai deux petites questions à vous poser:

    Tout d'abord, est ce que toutes les cartes supportant le VESA 1.2 supportent aussi le LFB?

    De plus, lorsqu'on a activé le LFB (en activant un mode VESA), comment fait-on pour adresser la mémoire vidéo, puisque sa taille est supérieure à 64ko et qu'elle n'est plus divisée en chunks? (faut-il passer en mode protégé, mais après comment on fait...?)

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Citation Envoyé par Neo82
    (faut-il passer en mode protégé, mais après comment on fait...?)
    Oui; mais avant de passer en pmode, il faut activer le LFB.

    Citation Envoyé par Neo82
    VESA 1.2
    Utilise plutôt vesa 2.0 ou 3.0, ils sont mieux et plus simples (il n'y a plus de chunks je crois)

    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    et avant de passer en mode VESA il faut aussi récupérer l'adresse de la LFB avec la sous fonction 01h, on ne saurai pas où écrire les pixels sinon.

  4. #4
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    J'ai jamais réussi à le faire ... si quelqu'un sait comment faire je suis très très intéressé !!! (ça marche aussi avec les "chunks" mais c'est très lourd à programmer )
    Avant de poster, merci de consulter les règles du forum

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Donc, il faut:

    - activer un mode VESA en sélectionnant le LFB (il y a un bit à positionner je crois...)
    - passer en mode protégé (pour adresser plus de mémoire)
    - récupérer l'adresse du LFB
    - et après comment on fait? Quelle est la méthode pour adresser la nouvelle mémoire video?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    en fait faut récupérer l'adresse du LFB en premier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	mov	ax,4F01h
    	mov	cx,4114h  ;pour le mode 114h (4114h pour le LFB)
    	mov	di,info_mode  ;pointe sur une structure
    	int	10h
    là c'est la structure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    info_mode:
    FlagMode		dw	0; // Flag du mode video concerne
    FlagW1			db	0;   // Flag de la premiere fenetre d'acces
    FlagW2			db	0;   // Flag de la deuxieme fenetre d'acces
    Gran			dw	0;     // Granularite en Ko
    WTaille			dw	0;  // Taille des deux fenetres d'acces
    W1Seg			dw	0;    // Segment de la premiere fenetre
    W2Seg			dw	0;    // Segment de la deuxieme fenetre
    Foncp			dd	0;   // Offset de la fonction Bank switch
    ByteRes			dw	0;  // Nb d'octets occupés par une ligne de pts
    XRes			dw	0;     // Resolution en X pts/carac
    YRes			dw	0;     // Resolution en Y pts/carac
    XCar			db	0;     // Largeur caractere en pts
    YCar			db	0;     // Longueur caractere en pts
    NPlan			db	0;    // Nombre de plans de bits
    BPpix			db	0;    // Nombre de bits par pixels
    NBank			db	0;    // Nombre de bank memoire
    MModel			db	0;   // Modele memoire
    BTaille			db	0;  // Taille des banks memoires
    IPage			db	0;    // Nombre d'image page
    Reserve			db	0;  // Toujours à 1
    ;  // VBE 1.2 Extensions
    RedMaskSize		db	0;
    RedFieldPosition	db	0;
    GreenMaskSize		db	0;
    GreenFieldPosition	db	0;
    BlueMaskSize		db	0;
    BlueFieldPosition	db	0;
    ReservedMaskSize	db	0;
    ReservedFieldPosition	db	0;
    DirectColourModeInfo	db	0;
    ; // VBE 2.0 Extentions
    PhysBasePtr		dd	0;        // adresse phys du ptr LFB !
    OffScreenMemOffset	dd	0;
    OffScreenMemSize	dw	0;
    on passe en mode VESA
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	mov	ax,4F02h
    	mov	bx,4114h ; 800*600*2
    	int	10h
    on passe ensuite en PMode
    et donc en principe pour avoir un écran tout blanc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mov edi,[PhysBasePtr]
    mov ecx,800*600
    mov ax,0FFFFh   ;blanc
    rep stosw

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Ok je te remercie!!

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Mais au fait, on procède comme cela pour n'importe quel mode, ou bien arrivé à une définition ou un nombre de couleurs trop élevé, il y a une autre marche à suivre?

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 19
    Points : 21
    Points
    21
    Par défaut
    en 16 24 ou 32 bits c'est pareil sauf que dans l'exemple j'ai pas vérifié avec la sous fonction 00h pour voir les différents modes supportés par la carte. Parce que soit c'est 24bits soit c'est 32bits mais pas les 2

  10. #10
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    !!!!
    Avant de poster, merci de consulter les règles du forum

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 130
    Points : 121
    Points
    121
    Par défaut
    Je te remercie beaucoup!!!

Discussions similaires

  1. Performance du frame buffer object (FBO)
    Par Grosbenji dans le forum OpenGL
    Réponses: 4
    Dernier message: 24/01/2007, 15h19
  2. Utilisation du frame buffer avec Nvidia
    Par HNT dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 05/07/2006, 12h47
  3. format frame buffer
    Par jeremieLuminy dans le forum OpenGL
    Réponses: 9
    Dernier message: 22/04/2006, 09h50
  4. Frame Buffer
    Par nicolaskarp dans le forum Linux
    Réponses: 3
    Dernier message: 20/03/2006, 04h11
  5. Frame buffer object
    Par Pen² dans le forum OpenGL
    Réponses: 6
    Dernier message: 14/11/2005, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo