Une liste de code assembler pour activer un mode graphique (MCGA)
asm
mov ax,0013h
int 10h
end;
Je rechercherai donc une source qui active le mode graphique (CGA,MCGA,VGA)
directement par les registres E/S de la carte vidéo (3d4 3d5 etc) C.A.D sans
passer par le BIOS;
Merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On Fri, 31 Dec 2004 18:43:53 +0100, "Sivaller" :
Une liste de code assembler pour activer un mode graphique (MCGA) asm mov ax,0013h int 10h
Tu risques d'avoir beaucoup de mal à trouver de la doc sur ce genre de choses maintenant que Windows 95 (et ses successeurs) est sorti, et que tout le monde a oublié ces techniques depuis plus de six ans. Si fr.comp.os.msdos est encore actif, tu y trouveras peut-être des infos. Ta question est presque aussi HS sur fr.comp.os.ms-windows.programmation qu'ici, puisque sous Windows, les méthodes sont différentes (typiquement, on laisse DirectX s'occuper de tout). Sinon, il te reste comp.lang.asm.x86 (en anglais je suppose).
-- ;-)
On Fri, 31 Dec 2004 18:43:53 +0100, "Sivaller"
<nospam.sivaller@sivaller.no-ip.org>:
Une liste de code assembler pour activer un mode graphique (MCGA)
asm
mov ax,0013h
int 10h
Tu risques d'avoir beaucoup de mal à trouver de la doc sur ce genre de
choses maintenant que Windows 95 (et ses successeurs) est sorti, et
que tout le monde a oublié ces techniques depuis plus de six ans.
Si fr.comp.os.msdos est encore actif, tu y trouveras peut-être des
infos. Ta question est presque aussi HS sur
fr.comp.os.ms-windows.programmation qu'ici, puisque sous Windows, les
méthodes sont différentes (typiquement, on laisse DirectX s'occuper de
tout).
Sinon, il te reste comp.lang.asm.x86 (en anglais je suppose).
Une liste de code assembler pour activer un mode graphique (MCGA) asm mov ax,0013h int 10h
Tu risques d'avoir beaucoup de mal à trouver de la doc sur ce genre de choses maintenant que Windows 95 (et ses successeurs) est sorti, et que tout le monde a oublié ces techniques depuis plus de six ans. Si fr.comp.os.msdos est encore actif, tu y trouveras peut-être des infos. Ta question est presque aussi HS sur fr.comp.os.ms-windows.programmation qu'ici, puisque sous Windows, les méthodes sont différentes (typiquement, on laisse DirectX s'occuper de tout). Sinon, il te reste comp.lang.asm.x86 (en anglais je suppose).
-- ;-)
Fred
Une liste de code assembler pour activer un mode graphique (MCGA) asm mov ax,0013h int 10h end;
Je rechercherai donc une source qui active le mode graphique (CGA,MCGA,VGA) directement par les registres E/S de la carte vidéo (3d4 3d5 etc) C.A.D sans passer par le BIOS; Merci
Bonjour à tous et bonne année,
J'ai retrouvé dans mes archives le Cd Micro Application "La Bible PC" dans lequel l'auteur traite ce sujet.
En voici un très court extrait pour ne pas polluer le forum C++. Contributeurs du Newsgroup, veuillez m'excuser, je n'en ai pas pour longtemps :
;---------------------------------------------------------------------*; ;* Auteur : MICHAEL TISCHER *; ;* Développé le : 13.08.87 *; ;* Dernière MAJ : 21.04.89 *; ;*--------------------------------------------------------------------*; ;* Assemblage : MASM VCOL; *; ;* LINK VCOL; *; ;*--------------------------------------------------------------------*; ;* Appel : VCOL *; ;**********************************************************************;
;== Constantes ======================================================== REG_CONTR = 03D8h ; Adr. port du registre de commande REG_COUL = 03D9h ; Adr. port de registre de sélection des couleurs ADRESS_6845 = 03D4h ; Registre d'adresse du 6845 DATA_6845 = 03D5h ; Registre de données du 6845 VIO_SEG = 0B800h ; Segment de la mémoire d'écran CUR_START = 10 ; Nø registre CRTC: ligne suprieure du curseur CUR_END = 11 ; Nø registre CRTC: ligne inférieure du curseur PAGECOUR_HI = 12 ; Octet fort de l'adresse de la page PAGECOUR_LO = 13 ; Octet faible de l'adresse de la page CURPOS_HI = 14 ; Nø registre CRTC: octet fort pos. curseur CURPOS_LO = 15 ; Nø registre CRTC: octet faible pos. curseur
DELAY = 20000 ; Compteur d'itérations pour boucle d'attente
;-- SETMODE: Macro pour régler le registre de commande de l'écran ------
setmode macro mode
mov dx,REG_CONTR ; Adresse du registre de commande de l'écran mov al,mode ; Nouveau mode dans le registre AL out dx,al ; Envoyer mode au registre de commande
;-- GRAFHI : Active le mode graphique 640*200 points ---------- ;-- Entre : Aucune ;-- Sortie : Aucune ;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
grafhi proc near
mov bl,00010010b ; Mode graphique 640*200 points jmp short graphiq ; Reprogramme le controleur vidéo grafhi endp ;--------------------------------------------------------------------
;-- VCPROG : programme le controleur vido --------------------------- ;-- Entrée : SI = Adresse d'une table de registres ;-- BL = Valeur pour registre de commande de l'écran ;-- Sortie : Aucune ;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
vcprog proc near
setmode bl ; Bit 3 = 0 : Ecran dsactiv
mov cx,12 ; 12 registres fixer xor bh,bh ; Commence par le registre 0
vcp1: lodsb ; Lit une valeur de registre dans table mov ah,al ; Valeur de registre dans AH mov al,bh ; Numro du registre dans AL call setvc ; Transmet la valeur au contrleur inc bh ; Appelle le registre suivant loop vcp1 ; Fixe les autres registres
or bl,8 ; Bit 3 = 1 : Ecran activ setmode bl ; Fixe nouveau mode ret ; Retour au programme appelant ;-------------------------------------------------------------------------
Je pense que c'est ce que vous cherchez, j'ai aussi les programmes C et Pascal utilisant ces routines. Vous pouvez me contacter en suivant ce lien et je pourrai vous faire parvenir le CD que je dois récupérer chez un ami.
-- Fred40
http://cerbermail.com/?7WWAvXv1hV
Une liste de code assembler pour activer un mode graphique (MCGA)
asm
mov ax,0013h
int 10h
end;
Je rechercherai donc une source qui active le mode graphique (CGA,MCGA,VGA)
directement par les registres E/S de la carte vidéo (3d4 3d5 etc) C.A.D sans
passer par le BIOS;
Merci
Bonjour à tous et bonne année,
J'ai retrouvé dans mes archives le Cd Micro Application "La Bible PC"
dans lequel l'auteur traite ce sujet.
En voici un très court extrait pour ne pas polluer le forum C++.
Contributeurs du Newsgroup, veuillez m'excuser, je n'en ai pas
pour longtemps :
;---------------------------------------------------------------------*;
;* Auteur : MICHAEL TISCHER *;
;* Développé le : 13.08.87 *;
;* Dernière MAJ : 21.04.89 *;
;*--------------------------------------------------------------------*;
;* Assemblage : MASM VCOL; *;
;* LINK VCOL; *;
;*--------------------------------------------------------------------*;
;* Appel : VCOL *;
;**********************************************************************;
;== Constantes ========================================================
REG_CONTR = 03D8h ; Adr. port du registre de commande
REG_COUL = 03D9h ; Adr. port de registre de sélection des couleurs
ADRESS_6845 = 03D4h ; Registre d'adresse du 6845
DATA_6845 = 03D5h ; Registre de données du 6845
VIO_SEG = 0B800h ; Segment de la mémoire d'écran
CUR_START = 10 ; Nø registre CRTC: ligne suprieure du curseur
CUR_END = 11 ; Nø registre CRTC: ligne inférieure du curseur
PAGECOUR_HI = 12 ; Octet fort de l'adresse de la page
PAGECOUR_LO = 13 ; Octet faible de l'adresse de la page
CURPOS_HI = 14 ; Nø registre CRTC: octet fort pos. curseur
CURPOS_LO = 15 ; Nø registre CRTC: octet faible pos. curseur
DELAY = 20000 ; Compteur d'itérations pour boucle d'attente
;-- SETMODE: Macro pour régler le registre de commande de l'écran ------
setmode macro mode
mov dx,REG_CONTR ; Adresse du registre de commande de l'écran
mov al,mode ; Nouveau mode dans le registre AL
out dx,al ; Envoyer mode au registre de commande
;-- GRAFHI : Active le mode graphique 640*200 points ----------
;-- Entre : Aucune
;-- Sortie : Aucune
;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
grafhi proc near
mov bl,00010010b ; Mode graphique 640*200 points
jmp short graphiq ; Reprogramme le controleur vidéo
grafhi endp
;--------------------------------------------------------------------
;-- VCPROG : programme le controleur vido ---------------------------
;-- Entrée : SI = Adresse d'une table de registres
;-- BL = Valeur pour registre de commande de l'écran
;-- Sortie : Aucune
;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
vcprog proc near
setmode bl ; Bit 3 = 0 : Ecran dsactiv
mov cx,12 ; 12 registres fixer
xor bh,bh ; Commence par le registre 0
vcp1: lodsb ; Lit une valeur de registre dans table
mov ah,al ; Valeur de registre dans AH
mov al,bh ; Numro du registre dans AL
call setvc ; Transmet la valeur au contrleur
inc bh ; Appelle le registre suivant
loop vcp1 ; Fixe les autres registres
or bl,8 ; Bit 3 = 1 : Ecran activ
setmode bl ; Fixe nouveau mode
ret ; Retour au programme appelant
;-------------------------------------------------------------------------
Je pense que c'est ce que vous cherchez, j'ai aussi les programmes
C et Pascal utilisant ces routines.
Vous pouvez me contacter en suivant ce lien et je pourrai vous faire
parvenir le CD que je dois récupérer chez un ami.
Une liste de code assembler pour activer un mode graphique (MCGA) asm mov ax,0013h int 10h end;
Je rechercherai donc une source qui active le mode graphique (CGA,MCGA,VGA) directement par les registres E/S de la carte vidéo (3d4 3d5 etc) C.A.D sans passer par le BIOS; Merci
Bonjour à tous et bonne année,
J'ai retrouvé dans mes archives le Cd Micro Application "La Bible PC" dans lequel l'auteur traite ce sujet.
En voici un très court extrait pour ne pas polluer le forum C++. Contributeurs du Newsgroup, veuillez m'excuser, je n'en ai pas pour longtemps :
;---------------------------------------------------------------------*; ;* Auteur : MICHAEL TISCHER *; ;* Développé le : 13.08.87 *; ;* Dernière MAJ : 21.04.89 *; ;*--------------------------------------------------------------------*; ;* Assemblage : MASM VCOL; *; ;* LINK VCOL; *; ;*--------------------------------------------------------------------*; ;* Appel : VCOL *; ;**********************************************************************;
;== Constantes ======================================================== REG_CONTR = 03D8h ; Adr. port du registre de commande REG_COUL = 03D9h ; Adr. port de registre de sélection des couleurs ADRESS_6845 = 03D4h ; Registre d'adresse du 6845 DATA_6845 = 03D5h ; Registre de données du 6845 VIO_SEG = 0B800h ; Segment de la mémoire d'écran CUR_START = 10 ; Nø registre CRTC: ligne suprieure du curseur CUR_END = 11 ; Nø registre CRTC: ligne inférieure du curseur PAGECOUR_HI = 12 ; Octet fort de l'adresse de la page PAGECOUR_LO = 13 ; Octet faible de l'adresse de la page CURPOS_HI = 14 ; Nø registre CRTC: octet fort pos. curseur CURPOS_LO = 15 ; Nø registre CRTC: octet faible pos. curseur
DELAY = 20000 ; Compteur d'itérations pour boucle d'attente
;-- SETMODE: Macro pour régler le registre de commande de l'écran ------
setmode macro mode
mov dx,REG_CONTR ; Adresse du registre de commande de l'écran mov al,mode ; Nouveau mode dans le registre AL out dx,al ; Envoyer mode au registre de commande
;-- GRAFHI : Active le mode graphique 640*200 points ---------- ;-- Entre : Aucune ;-- Sortie : Aucune ;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
grafhi proc near
mov bl,00010010b ; Mode graphique 640*200 points jmp short graphiq ; Reprogramme le controleur vidéo grafhi endp ;--------------------------------------------------------------------
;-- VCPROG : programme le controleur vido --------------------------- ;-- Entrée : SI = Adresse d'une table de registres ;-- BL = Valeur pour registre de commande de l'écran ;-- Sortie : Aucune ;-- Registres: AX, SI, BH, DX et registre des indicateurs sont modifiés
vcprog proc near
setmode bl ; Bit 3 = 0 : Ecran dsactiv
mov cx,12 ; 12 registres fixer xor bh,bh ; Commence par le registre 0
vcp1: lodsb ; Lit une valeur de registre dans table mov ah,al ; Valeur de registre dans AH mov al,bh ; Numro du registre dans AL call setvc ; Transmet la valeur au contrleur inc bh ; Appelle le registre suivant loop vcp1 ; Fixe les autres registres
or bl,8 ; Bit 3 = 1 : Ecran activ setmode bl ; Fixe nouveau mode ret ; Retour au programme appelant ;-------------------------------------------------------------------------
Je pense que c'est ce que vous cherchez, j'ai aussi les programmes C et Pascal utilisant ces routines. Vous pouvez me contacter en suivant ce lien et je pourrai vous faire parvenir le CD que je dois récupérer chez un ami.