Forum Graph100

Forum Graph100

Vous n'êtes pas identifié.

Annonce

Bonjour et bienvenue sur le nouveau Forum Graph100 !
L'intégralité des données a été transférée sur un forum PunBB et tout les comptes sont fonctionnels avec le même nom d'utilisateur et mot de passe.
Un wiki est aussi disponible avec le même compte ! N'oubliez pas de remettre votre avatar, bon surf !
Pour plus d'informations, consultez ce post.

#1 07 Apr 2002 06:05:38

Superna
Ex-Trouvetou G100
Lieu: Sous Linux ^^
Date d'inscription: 01 Feb 2002
Messages: 2275
Site web

Cycles de Fonctions graphiques

//**************Nombres de cycles des routines graphiques***************//
// Toutes les ft sont adaptÈes pour fonctionner avec casio2.h //
// Elles contiennent le calcul du seg video //

Code:

// Routines pour metre un pixel selon la couleur
//routine pixel par bradn
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    mov ah,0xfe        //2
    rol ah,cl        //3
    and es:[si],ah        //7 
    mov ah,al        //2
    rol ah,cl         //3
    or es:[si],ah         //7
//total                //55 cycles (soit 47 cycles sans la def de seg)
//routine moi setpix
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2 //33
    mov al,couleur        //2
    mov bl,es:[si]        //4
    db 0x0F,0x12,0x0C3      //2
    rol al,cl        //3 
    or bl,al        //2 
    mov es:[si],bl        //2
//total                //48 cycles (soit 40 cycles sans la def de seg)

// Routines pour mettre un pixel noir
//Routine whyp set black pix
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    xor bl,bl              //2
    db 0x0F,0x14,0x0C3     //2
    or es:[si],bl          //7
//total                //44 cycles (soit 38 cycles sans la def de seg)
//routine moi setbpix
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    mov bl,es:[si]        //4
    db 0x0F,0x14,0x0C3    //2
    mov es:[si],bl        //2
//total                //41 cycles (soit 35 cycles sans la def de seg)

//Routines pour mettre un pixel blanc
//routine white pix par whyp
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    mov bl,0xFF        //2
    db 0x0F,0x12,0x0C3    //2
    and es:[si],bl        //7
//total                //44 cycles (soit 38 cycles sans la def de seg)
//routine moi setwPix
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    mov bl,es:[si]        //4
    db 0x0F,0x12,0x0C3      //2
    mov es:[si],bl        //2
//total                //41 cycles (soit 35 cycles sans la def de seg)

// Routine pour inverser un pixel
//routine invpixel (universelle)
    mov ax,page        //2
    shl ax,6        //2
    add ax,0x1a20        //2
    mov es,ax        //2
    mov cx,X        //2
    mov dx,Y        //2
    mov si,0x003f        //2
    sub si,dx        //1
    sub cx,0x80        //2
    not cx            //2
    push cx            //3
    and cl,0xf8        //2
    shl cx,0x03        //2
    add si,cx        //1
    pop cx            //4
    and cl,0x07         //2  //33
    mov bl,es:[si]        //4
    db 0x0F,0x016,0x0C3    //2
    mov es:[si],bl        //2
//total                //41 cycles (soit 35 cycles sans la def de seg)

/* Donc on voit alors que pour mettre un pixel  on a :
Pixel : Bradn 55(47) vs superna 48(40)
Pixel Noir : Whyp 44 ( 38 ) vs superna 41 ( 35 )
Pixel Blanc : Whyp 44 ( 38 ) vs superna 41 ( 35 )
d'ou l'utilitÈ d'utiliser les ft specifiques
Note : Je ne veut absolument pas etre le plus fort car je n'aurais jamais put faire
ces optimisations sans les routines de whyp et de BradN, donc d'abord :
Bravo Whyp et BradN !!               */

Hors ligne

 

#2 07 Apr 2002 08:40:45

nykosledieu
Team G100
Lieu: Strasbourg
Date d'inscription: 29 Jan 2002
Messages: 3028
Site web

Re: Cycles de Fonctions graphiques

superna révolutionne le monde... j'ai rien capté mais je crois que c'est bien trouvé... bravo


Nykosledieu
nykosJEMMERDELESPAM@graph100.com - http://team.graph100.com
Venez sur le chat !!

Hors ligne

 

#3 07 Apr 2002 14:14:36

Whyp
Programmeur Graph100
Date d'inscription: 05 Feb 2002
Messages: 319
Site web

Re: Cycles de Fonctions graphiques

Et bravo a toi !


http://shine.sourceforge.net tout programmer votre graph100 smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr