;Boucle interne pour afficher une ligne d'affichage horizontale par plaquage de ; de texture en Mode X, le mode de permutation de page en 256 couleurs du VGA. ;Comme des pixels contigus se déploient dans différents plans en Mode X, ;une OUT doit être effectuée pour sélectionner le bon plan avant l'affichage de ;chaque pixel. ;A ce stade: ;AL = masque de plan du pixel initial ;EYS:BX = pointeur sur la structure source initiale ;DX = pointeur sur le registre Sequencer Data du VGA ;SI = nombre de pixels à remplir ;ES:DI = pointeur sur le pixel de destination initial TexScanLoop: ; Positionne Map Mask pour le plan de ce pixel, puis affiche le pixel. out dx,al mov ah,[bx] ;récupère le pixel de la texture mov es:[di].ah ;paramètre le pixel de l'écran ;Pointe sur le prochain pixel source. add bx,[bp].lXBaseAdvance ;avance un minimum de pixels dans X mov cx.word ptr [bp].lSourceStepX add word ptr [bp].lSourceX.cx ;avance la partie fractionnaire X ;source jnc NoExtraXAdvance ;n'a pas permuté; n'avance plus add bx.[bp].1XadvanceByOne ;a permuté, avance X de un NoExtraXAdvance: add bx,[bp].1YbaseAdvance ;avance un minimum de pixels dans Y mov cx,word ptr [bp].lSourceStepY add word ptr [bp].lSourceY,cx ;avance la partie fractionnaire ;Y source jnc NoExtraYAdvance ;n'a pas permuté, n'avance plus add bx,[bp].lYAdvanceByOne ;a permuté; avance Y de un NoExtraYAdvance: ; Pointe sur le prochain pixel destination, en passant au prochain plan et en ; avançant à la prochaine adresse si le plan va de 3 à 0. rol al,1 adc di,0 ; Continue s'il reste d'autres pixels destination à afficher. dec si jnz TexScanLoop