Título: interrupciones Publicado por: -dominique- en 8 Diciembre 2012, 00:48 am Hola, tengo un problema con la interrupcion 10h.
Lo que pasa es que quiero imprimir varios mensajes y quiero cambiar los colores de las letras y el fondo. Me guie del ejemplo "Hola mundo" pero cuando quiero imprimer otro mensaje despues de ese, se imprime ensima. ¿Como puedo hacerlo? ¿y se puede combinar la funcion 9 de la interrupcion 21h con alguna de la interrupcion 10h? Gracias :D Título: Re: interrupciones Publicado por: x64core en 8 Diciembre 2012, 18:13 pm Estas en modo texto o modo grafico? Decis que quieres cambiar el fondo, en modo texto solo se puede cambiar el borde.
respecto a que si se pueden combinar eso me hace pensar más que estas en modo grafico, las cuales si es así necesitas cambiar las coordenadas seguramente ese es tu problema, postea el codigo para mirar tu problema Título: Re: interrupciones Publicado por: _Enko en 8 Diciembre 2012, 20:54 pm Hola, no recuerdo si habia una interrupcion para eso.
Lo que si te puedo decir, es que en modo texto, la matriz del texto de la pantalla (80x25) esta guardada en 0xB8000 Y si aun no recuerdo mal, estaba compuesto por una matriz de 80x25 de WORD. Donde el primer byte es la combinacion de color-fondo y el segundo byte el caracter. Por ejemplo, el texto en con letras blancas y texto negro es: '0',h','0','o','0','l','0','a' Para otro color, se cambia el 0 por un 1,2,3,4etc... aqui mas info http://wiki.osdev.org/Printing_To_Screen Título: Re: interrupciones Publicado por: -dominique- en 9 Diciembre 2012, 02:48 am Esta en modo texto. Me guie del ejemplo que tiene el emu, "Hello World". En él quise cambiar el codigo para que pueda imprimir varios mensajes. Algo asi:
************ * Mensaje * ************ pero solo imprime en una sola linea, uno ensima del otro. Prove con la funcion 2 para desplazar el cursor pero lo imprime todo y al final lo desplaza. Tambien prove con imprimir un mensaje definido en la zona de datos con la funcion 9 de la interrupcion 21h pero no se ejecuta. Gracias Título: Re: interrupciones Publicado por: x64core en 10 Diciembre 2012, 22:49 pm Esta en modo texto. Me guie del ejemplo que tiene el emu, "Hello World". En él quise cambiar el codigo para que pueda imprimir varios mensajes. Algo asi: ************ * Mensaje * ************ pero solo imprime en una sola linea, uno ensima del otro. Prove con la funcion 2 para desplazar el cursor pero lo imprime todo y al final lo desplaza. Tambien prove con imprimir un mensaje definido en la zona de datos con la funcion 9 de la interrupcion 21h pero no se ejecuta. Gracias no puedes imprimir ese tipo de texto? la funcion 02 es para escribir un caracter, la funcion 09 es para escribir una cadena,Mostra tu codigo. Título: Re: interrupciones Publicado por: -dominique- en 13 Diciembre 2012, 00:52 am Este es el codigo que hice, el problema es que imprime en varios colores. ¿Hay una manera de que imprima en uno solo?
Código:
Título: Re: interrupciones Publicado por: x64core en 13 Diciembre 2012, 05:24 am El color se establece en BL, antes de llamar a la función BL debe contener el valor correspondiente al color deseado, te dejo
la paleta de colores: Código: 00H black 08H gray Título: Re: interrupciones Publicado por: -dominique- en 14 Diciembre 2012, 00:31 am Muchas gracias chicos :D
|