; Programme pour illustrer l'effacement de l'écran via le bit 5 du ; registre Attribute Controller Index. ; Assemblé avec TASM 4.0, lié avec TLINK 6.10 ; Testé par Jim Mischel 11/21/94 ; AC_INDEX equ 3c0h ;registre Attribute Controller Index INPUT_STATUS_1 equ 3dah ;adresse du mode couleur du registre ; Input ; Status 1 ; ; Macro pour attendre une touche clavier. ; WAIT_KEY macro mov ah,8 ;fonction entrée sans écho de DOS int 21h endm ; stack segment para stack 'STACK' db 512 dup (?) stack ends ; Data segment word 'DATA' SampleText db 'Ce texte est bit-mappé, affiché en hi-res db 'du mode graphique 10h d'EGA.', 0dh, 0a ;h, 0ah db 'Appuyez sur n'importe quelle touche pour ;effacer l'écran, ' db 'n'importe quelle touche pour ne pas l'effacer ; ', 0dh, 0ah db 'puis n'importe quelle touche pour finir.$ ;' Data ends ; Code segment assume cs:Code, ds:Data Start proc near mov ax,Data mov ds,ax ; ; Passe en mode graphique hi-res. ; mov ax,10h ;AH = 0 signifie initialisation ;du mode ;AL = 10h sélectionne le mode ; graphique hi-res int 10h ;interruption vidéo du BIOS ; ; Met du texte afin que l'écran ne soit pas vide. ; mov ah,9 ;fonction affichage de chaîne de DOS mov dx,offset SampleText int 21h ; WAIT_KEY ; ; Nettoie l'écran. ; mov dx,INPUT_STATUS_1 in al,dx ;réinitialise le port 3c0h en index ;(et non en données) ; mode mov dx,AC_INDEX sub al,al ;met le bit 5 à zéro... out dx,al ;.ce qui efface l'écran ; WAIT_KEY ; ; N'efface pas l'écran. ; mov dx,INPUT_STATUS_1 in al,dx ;réinitialise le port 3c0h en Index ;(et non en données) ; mode mov dx,AC_INDEX mov al,20h ;met le bit 5 à un... out dx,al ;.ce qui n'efface pas l'écran ; WAIT_KEY ; ; Restaure le mode texte. ; mov ax,2 int 10h ; ; Fini. ; Done: mov ah,4ch ;fonction terminer de DOS int 21h Start endp Code ends end Start