Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
back2root:tutoriaux:vga-avance-dac-part-3 [2021/07/14 21:49] – ↷ Page déplacée de tutoriaux:vga-avance-dac-part-3 à back2root:tutoriaux:vga-avance-dac-part-3 frater | back2root:tutoriaux:vga-avance-dac-part-3 [2024/08/08 10:54] (Version actuelle) – [Le Code] frater |
---|
Cette instruction prends les valeurs du dernier "SetColor" (y compris la couleur) pour faire varier les intensités jusqu'aux nouvelles valeurs paramètres, et ce depuis la ligne courant jusqu'à la ligne cible. | Cette instruction prends les valeurs du dernier "SetColor" (y compris la couleur) pour faire varier les intensités jusqu'aux nouvelles valeurs paramètres, et ce depuis la ligne courant jusqu'à la ligne cible. |
| |
Byte 0 Byte 1 Byte 2 Byte 3 Byte 4 Byte 5 0x30 LineH LineL Red Green Blue | ^ Byte 0 ^ Byte 1 ^ Byte 2 ^ Byte 3 ^ Byte 4 ^ Byte 5 ^ |
| | 0x30 | LineH | LineL | Red | Green | Blue | |
| |
Les bytes "LineH" et "LineL" sont les octets de poids fort et faible du mot qui défini la ligne "cible", celle-ci DOIT être inférieur à copper_maxrow, sans quoi l’exécution des copper s’arrêtent avec un code d'erreur. | Les bytes "LineH" et "LineL" sont les octets de poids fort et faible du mot qui défini la ligne "cible", celle-ci DOIT être inférieur à copper_maxrow, sans quoi l’exécution des copper s’arrêtent avec un code d'erreur. |
| |
<WRAP center round info 95%> | <WRAP center round info 95%> |
A cause des limitations du x86 concernant les jump conditionnels (near) il a fallut mettre en place un structure de type switch case. | A cause des limitations du x86 concernant les jump conditionnels (near), il a fallut mettre en place un structure de type switch case; car l'oppérande n'est que de 2 octets et n'est pas capable de faire de sauts conditionnel au delà d'un delta de -126 +127. |
| |
Le build-in assembler de borland C++ n'est pas capable de faire de sauts conditionnel au delà d'un delta de -126 +127; car l'oppérande n'est que de 2 octets, pour contourner ce problème il aurait fallut écrire le code assembleur .386 dans un fichier .asm et ensuite le linker au code C, ce qui aurait permis de réduire la "boucle" comme ci-dessous. | |
| |
| Le build-in assembler de borland C++ utilise des instruction 'near' pour son assemblage, ce qui fait que certains sauts sont hors limite; pour contourner ce problème il aurait fallut écrire le code assembleur ''.386'' dans un fichier //.asm// et ensuite le linker au code C, ce qui aurait permis de réduire la "boucle" comme ci-dessous. |
</WRAP> | </WRAP> |
| |
| |
#endif | #endif |
| |
| |
</code> | </code> |
| |
<nspages tutoriaux -simpleList -h1 -exclude:start -textPages="Tutoriaux disponible"> | <nspages back2root/tutoriaux -simpleList -h1 -exclude:start -textPages="Tutoriaux disponible"> |
| |
| |