; Programme pour illustrer l'opération du registre Map Mask lors d'un tracé ; en mémoire qui contient déjà des données. ; Assemblé avec TASM 4.0, lié avec TLINK 6.10 ; Testé par Jim Mischel 11/21/94 ; stack segment para stack 'STACK' db 512 dup(?) stack ends ; EGA_VIDEO_SEGMENT equ 0a000h ;segment de la mémoire vidéo d'EGA ; ; registre EGA équivaut à. ; SC_INDEX equ 3c4h ;registre index SC SC_MAP_MASK equ 2 ;registre map mask SC ; ; Macro pour positionner le registre indexé INDEX de du circuit SC à SETTING. ; SETSC macro INDEX, SETTING mov dx,SC_INDEX mov al,INDEX out dx,al inc dx mov al,SETTING out dx,al dec dx endm ; cseg segment para public 'CODE' assume cs:cseg start proc near ; ; Sélectionne le mode graphique 640x480. ; mov ax,012h int 10h ; mov ax,EGA_VIDEO_SEGMENT mov es,ax ;pointe sur la mémoire vidéo ; ; Affiche 24 barres horizontales d'une hauteur de 10 lignes d'affichage en vert, SETSC SC_MAP_MASK,02h ;le paramétrage de map mask active seulement ;le plan 1, le plan vert sub di,di ;démarre au début de la mémoire vidéo mov al,0ffh mov bp,24 ;nombre de barres à afficher HorzBarLoop: mov cx,80*10 ;nombre d'octets par barre horizontale rep stosb ;affiche la barre add di,80*10 ;pointe sur le début de la prochaine barre dec bp jnz HorzBarLoop ; ;Remplit l'écran de bleu, en utilisant le registre Map Mask pour activer seulement ;les écritures dans le plan bleu. ; SETSC SC_MAP_MASK,01h ;le paramétrage map mask active seulement ;le plan 0, le plan bleu sub di,di mov cx,80*480 ;nombre d'octets par écran mov al,0ffh rep stosb ;remplit (affecte seulement ;le plan 0, le plan bleu) ; ; Attend une touche clavier. ; mov ah,1 int 21h ; ; Restaure le mode texte. ; mov ax,03h int 10h ; ; quitte vers DOS. ; mov ah,4ch int 21h start endp cseg ends end start