diff --git a/Anciens fichiers/mcnormal.asm b/Anciens fichiers/mcnormal.asm deleted file mode 100644 index edf289e1..00000000 --- a/Anciens fichiers/mcnormal.asm +++ /dev/null @@ -1,246 +0,0 @@ -; Grafx2 - The Ultimate 256-color bitmap paint program -; -; Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud) -; -; Grafx2 is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License -; as published by the Free Software Foundation; version 2 -; of the License. -; -; Grafx2 is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with Grafx2; if not, see or -; write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -; -- Calcul de la meilleure couleur s'approchant d'une teinte particuliŠre -- - -Meilleure_couleur proc near - - push ebp - mov ebp,esp - - arg Rouge:byte,Vert:byte,Bleu:byte - - push ebx - push esi - push edi - - - ; On place dans ESI l'adresse de la palette - mov esi,offset Principal_Palette - - ; On place l'indice de la couleur au d‚but de la table d'exclusion de coul. - mov MC_Indice,offset Exclude_color - - ; EDI servira … stocker la meilleure diff‚rence - mov edi,07FFFFFFFh - - ; On se sert de CL pour compter la couleur en cours - ; (et CH servira … stocker la meilleure couleur) - xor cx,cx - - ; On nettoie la partie haute de EAX: - xor eax,eax - - Meilleure_couleur_Pour_chaque_couleur: - - ; On v‚rifie que la couleur ne soit pas exclue - mov ebx,MC_Indice - cmp byte ptr [ebx],0 - jnz Meilleure_couleur_Pas_mieux - - ; EBX sert … pointer la table pr‚calcul‚e - mov ebx,MC_Table_differences - - ; On calcule la diff‚rence: - ; - ; Le calcul s'effectue dans EDX (on y cumule les diff‚rences), en se - ; servant de EBX pour pointer la table pr‚calcul‚e, et de AX comme - ; indice dans la table - - ; On s'occupe de la composante Rouge - mov al,[esi] - mov dl,[esi+1] ; et en entrelac‚ de la composante verte - mov ah,Rouge - mov dh,Vert - sub al,ah - sub dl,dh - and eax,127 - and edx,127 - mov edx,[ebx+4*edx+128*4] - add edx,[ebx+4*eax] - - ; On s'occupe de la composante Bleue - mov al,[esi+2] - mov ah,Bleu - sub al,ah - and eax,127 - add edx,[ebx+4*eax+256*4] - - jz Meilleure_couleur_Correspond_impeccablement - - cmp edx,edi - jae Meilleure_couleur_Pas_mieux - - ; L…, on sait que CL contient une meilleure couleur que CH - - mov ch,cl ; On commence par mettre CH … CL - mov edi,edx ; Ensuite, on peut mettre DI (meilleure diff‚rence) … jour - - Meilleure_couleur_Pas_mieux: - - inc MC_Indice - add esi,3 - - inc cl - jnz Meilleure_couleur_Pour_chaque_couleur - - ; Ici, on sait que CH contient d‚j… la meilleure couleur. On va donc faire - ; une sortie rapide (c'est pas bien, mais ‡a fait gagner 3 cycles) - - mov al,ch - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - - Meilleure_couleur_Correspond_impeccablement: - - ; Ici, on sait que CL contient la couleur qui correspond exactement aux - ; exigences de l'appelant - - mov al,cl - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - -Meilleure_couleur endp - - - -; -- Calcul de la meilleure couleur s'approchant d'une teinte particuliŠre -- -; -- et ceci SANS exclure certaines couleurs coch‚es par l'utilisateur -- - -Meilleure_couleur_sans_exclusion proc near - - push ebp - mov ebp,esp - - arg Rouge:byte,Vert:byte,Bleu:byte - - push ebx - push esi - push edi - - - ; On place dans ESI l'adresse de la palette - mov esi,offset Principal_Palette - - ; EDI servira … stocker la meilleure diff‚rence - mov edi,07FFFFFFFh - - ; On se sert de CL pour compter la couleur en cours - ; (et CH servira … stocker la meilleure couleur) - xor cx,cx - - ; On nettoie la partie haute de EAX: - xor eax,eax - - ; EBX sert … pointer la table pr‚calcul‚e - mov ebx,MC_Table_differences - - MCSE_Pour_chaque_couleur: - - ; On calcule la diff‚rence: - ; - ; Le calcul s'effectue dans EDX (on y cumule les diff‚rences), en se - ; servant de EBX pour pointer la table pr‚calcul‚e, et de AX comme - ; indice dans la table - - ; On s'occupe de la composante Rouge - mov al,[esi] - mov dl,[esi+1] ; et en entrelac‚ de la composante verte - mov ah,Rouge - mov dh,Vert - sub al,ah - sub dl,dh - and eax,127 - and edx,127 - mov edx,[ebx+4*edx+128*4] - add edx,[ebx+4*eax] - - ; On s'occupe de la composante Bleue - mov al,[esi+2] - mov ah,Bleu - sub al,ah - and eax,127 - add edx,[ebx+4*eax+256*4] - - jz MCSE_Correspond_impeccablement - - cmp edx,edi - jae MCSE_Pas_mieux - - ; L…, on sait que CL contient une meilleure couleur que CH - - mov ch,cl ; On commence par mettre CH … CL - mov edi,edx ; Ensuite, on peut mettre DI (meilleure diff‚rence) … jour - - MCSE_Pas_mieux: - - add esi,3 - - inc cl - jnz MCSE_Pour_chaque_couleur - - ; Ici, on sait que CH contient d‚j… la meilleure couleur. On va donc faire - ; une sortie rapide (c'est pas bien, mais ‡a fait gagner 3 cycles) - - mov al,ch - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - - MCSE_Correspond_impeccablement: - - ; Ici, on sait que CL contient la couleur qui correspond exactement aux - ; exigences de l'appelant - - mov al,cl - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - -Meilleure_couleur_sans_exclusion endp diff --git a/Anciens fichiers/mcpourp2.asm b/Anciens fichiers/mcpourp2.asm deleted file mode 100644 index eca48098..00000000 --- a/Anciens fichiers/mcpourp2.asm +++ /dev/null @@ -1,265 +0,0 @@ -; Grafx2 - The Ultimate 256-color bitmap paint program -; -; Copyright 1996-2001 Sunset Design (Guillaume Dorme & Karl Maritaud) -; -; Grafx2 is free software; you can redistribute it and/or -; modify it under the terms of the GNU General Public License -; as published by the Free Software Foundation; version 2 -; of the License. -; -; Grafx2 is distributed in the hope that it will be useful, -; but WITHOUT ANY WARRANTY; without even the implied warranty of -; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -; GNU General Public License for more details. -; -; You should have received a copy of the GNU General Public License -; along with Grafx2; if not, see or -; write to the Free Software Foundation, Inc., -; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -; -- Calcul de la meilleure couleur s'approchant d'une teinte particuliŠre -- -Meilleure_couleur proc near - - push ebp - mov ebp,esp - - arg Rouge:byte,Vert:byte,Bleu:byte - - push ebx - push esi - push edi - - - ; On place dans ESI l'adresse de la palette - mov esi,offset Principal_Palette - - ; On place l'indice de la couleur au d‚but de la table d'exclusion de coul. - mov MC_Indice,offset Exclude_color - - ; EDI servira … stocker la meilleure diff‚rence - mov edi,07FFFFFFFh - - ; On se sert de CL pour compter la couleur en cours - ; (et CH servira … stocker la meilleure couleur) - xor cx,cx - - Meilleure_couleur_Pour_chaque_couleur: - - mov ebx,MC_Indice - cmp byte ptr [ebx],0 - jnz Meilleure_couleur_Pas_mieux - - ; On calcule la diff‚rence: - - ; On s'occupe de la composante Rouge - xor ebx,ebx - xor eax,eax - mov bl,[esi] - mov al,Rouge - sub eax,ebx - imul eax - mov MC_DR,eax - - ; On s'occupe de la composante Verte - xor ebx,ebx - xor eax,eax - mov bl,[esi+1] - mov al,Vert - sub eax,ebx - imul eax - mov MC_DV,eax - - ; On s'occupe de la composante Bleue - xor ebx,ebx - xor eax,eax - mov bl,[esi+2] - mov al,Bleu - sub eax,ebx - imul eax - mov MC_DB,eax - - ; On totalise la "distance" dans EBX - mov eax,30 - mul MC_DR - mov ebx,eax - - mov eax,59 - mul MC_DV - add ebx,eax - - mov eax,11 - mul MC_DB - add ebx,eax - jz Meilleure_couleur_Correspond_impeccablement - - cmp ebx,edi - jae Meilleure_couleur_Pas_mieux - - ; L…, on sait que CL contient une meilleure couleur que CH - - mov ch,cl ; On commence par mettre CH … CL - mov edi,ebx ; Ensuite, on peut mettre DI (meilleure diff‚rence) … jour - - Meilleure_couleur_Pas_mieux: - - inc MC_Indice - add esi,3 - - inc cl - jnz Meilleure_couleur_Pour_chaque_couleur - - ; Ici, on sait que CH contient d‚j… la meilleure couleur. On va donc faire - ; une sortie rapide (c'est pas bien, mais ‡a fait gagner 3 cycles) - - mov al,ch - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - - Meilleure_couleur_Correspond_impeccablement: - - ; Ici, on sait que CL contient la couleur qui correspond exactement aux - ; exigences de l'appelant - - mov al,cl - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - -Meilleure_couleur endp - - - - - - -; -- Calcul de la meilleure couleur s'approchant d'une teinte particuliŠre -- -; -- et ceci SANS exclure certaines couleurs coch‚es par l'utilisateur -- - -Meilleure_couleur_sans_exclusion proc near - - push ebp - mov ebp,esp - - arg Rouge:byte,Vert:byte,Bleu:byte - - push ebx - push esi - push edi - - - ; On place dans ESI l'adresse de la palette - mov esi,offset Principal_Palette - - ; EDI servira … stocker la meilleure diff‚rence - mov edi,07FFFFFFFh - - ; On se sert de CL pour compter la couleur en cours - ; (et CH servira … stocker la meilleure couleur) - xor cx,cx - - MCSE_Pour_chaque_couleur: - - ; On calcule la diff‚rence: - - ; On s'occupe de la composante Rouge - xor ebx,ebx - xor eax,eax - mov bl,[esi] - mov al,Rouge - sub eax,ebx - imul eax - mov MC_DR,eax - - ; On s'occupe de la composante Verte - xor ebx,ebx - xor eax,eax - mov bl,[esi+1] - mov al,Vert - sub eax,ebx - imul eax - mov MC_DV,eax - - ; On s'occupe de la composante Bleue - xor ebx,ebx - xor eax,eax - mov bl,[esi+2] - mov al,Bleu - sub eax,ebx - imul eax - mov MC_DB,eax - - ; On totalise la "distance" dans EBX - mov eax,30 - mul MC_DR - mov ebx,eax - - mov eax,59 - mul MC_DV - add ebx,eax - - mov eax,11 - mul MC_DB - add ebx,eax - jz MCSE_Correspond_impeccablement - - cmp ebx,edi - jae MCSE_Pas_mieux - - ; L…, on sait que CL contient une meilleure couleur que CH - - mov ch,cl ; On commence par mettre CH … CL - mov edi,ebx ; Ensuite, on peut mettre DI (meilleure diff‚rence) … jour - - MCSE_Pas_mieux: - - add esi,3 - - inc cl - jnz MCSE_Pour_chaque_couleur - - ; Ici, on sait que CH contient d‚j… la meilleure couleur. On va donc faire - ; une sortie rapide (c'est pas bien, mais ‡a fait gagner 3 cycles) - - mov al,ch - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - - MCSE_Correspond_impeccablement: - - ; Ici, on sait que CL contient la couleur qui correspond exactement aux - ; exigences de l'appelant - - mov al,cl - - - pop edi - pop esi - pop ebx - - mov esp,ebp - pop ebp - - ret - -Meilleure_couleur_sans_exclusion endp