• Domingo 22 de Diciembre de 2024, 12:52

Autor Tema:  Modificar El Codigo Del Prscr (print Screan)  (Leído 1603 veces)

Ericka

  • Nuevo Miembro
  • *
  • Mensajes: 13
    • Ver Perfil
Modificar El Codigo Del Prscr (print Screan)
« en: Jueves 22 de Abril de 2004, 00:37 »
0
:devil: Hola a los que me estan leyendo.... me han dejado de tarea modificar el codigo de la tecla PRSCR printscrean de el teclado, que es la int 5 en assembler, y tengo que hacer que en vez de que cuando se presione imprima de izquierda a derecha como lo hace cualquier computadora programada de esa forma, se invierta haciendolo de derecha a izquierda, el problema es que no si no como entrar al codigo de la interrupcion, nos sugirieron que arrancaramos la compu con DOS y entraramos al debug para buscar el codigo pero no se como hacer para hacerlo  :blink: tal vez alguna de sus brillantes mentes me pueda ayudar GRACIAS!  :devil:

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Modificar El Codigo Del Prscr (print Screan)
« Respuesta #1 en: Lunes 26 de Abril de 2004, 16:14 »
0
antes ¿el programa debe funcoanr con la tecla PRSCR (interrupcion)?
entoces si es asi hay que jugar con la sinterrupciones, de no ser asi pienso que puede ser mas facil:

el proble ma se reduciria a:
leer el los datos de la pantalla que se encuentran en la direccion 0b80h
y despues imprimirlo segun el orden que te pidan utilizando interrupcione d eDOS para imprimir(en este for existe un ejeplo para imprimir por puerto paralelo)
y creo que eso es todo.

joajavi

  • Miembro activo
  • **
  • Mensajes: 48
    • Ver Perfil
Re: Modificar El Codigo Del Prscr (print Screan)
« Respuesta #2 en: Jueves 29 de Abril de 2004, 16:15 »
0
Pues sí que le has aclarado bastante majete.....Hay que joderse....Cuanto os creeis que sabeis los "Supuestos Programadores de hoy en día". Ni la O con un canuto sabeis hacer. Todo es Windows y WEB's.
Yo tengo el código para hacer el cambio de ese procedimiento en la interrupcion 5h. Si lo pagas bien te lo paso, sin embargo, las impresoras no van de derecha a izquierda por lo que se seguirá imprimiendo de izquierda a derecha salvo que hayas redactado mal el ejercicio y lo que quieras es que la parte de la derecha de la pantalla salga a la izaquierda de la impresora, que eso es otra cosa.
joajavi@yahoo.es
Confección de Progrqmas, Ejercicios y Prácticas en Ensamblador.
joajavi@yahoo.es

Super_G

  • Miembro MUY activo
  • ***
  • Mensajes: 375
    • Ver Perfil
Re: Modificar El Codigo Del Prscr (print Screan)
« Respuesta #3 en: Lunes 3 de Mayo de 2004, 18:28 »
0
en si mandar a imprimir(por imtpresora) el contenido de la pantalla no es muy dificil con la ayuda de un servicio de DOS es menos complicado(siempre y cuando el DOS no se haga problemas con ciertas impresora por decir  impresorascon puertos USB),de modo que mandamos a imprimir byte por byte y los byte que mandamos a imprimir podemos leer en un arreglo de memria o hacerlo de la mismoa forma byte por byte,leyendo del direccinde memria de la pantalla ubicada en 0b800h(cada caracter de la pantalla esta representado por 2 bytes en memoria  el codigo ASCII y su propiedad color y color de fondo), para esto hay que tener en cuenta lagunos detalles como la resolucion de la pantalla(modo texto,eje:80x25), el orden de la impresion no aumenta tanto la dificultad, haber que tal esto:
Código: Text
  1.  
  2. ;;IMPRIMIR PANTALLA EN MODO TEXTO DE 40x80
  3.                  mov cx,200;;80x25;;# de caracteres a imprimir
  4.                  mov ax,0b800H&#59;;direccion de la pantalla[segmento]
  5.                  mov  es,ax      
  6.                  xor si,si&#59;;puntero a memoria de pantalla[desplazamiento]
  7.         G1:    mov dx,es:[si];;DH->propiedad vvvv DL->caracter
  8.                  mov ah,5 &#59;; servicio para imprimir DL en la imresora
  9.                  int 21h
  10.                  add si,2  &#59;; la lectura de la memoria se hace de 2 en 2      
  11.                  loop G1
  12.        
  13.  
  14.  

eso es basicamente, ahora se puede jugar con el orden de impresion; pero el hecho de como hacer dicha impresion fue la principal duad en este tema pues si se va a sustituir la INT 5h por otra interrupcion se debe alterar el vector de interrupcion......

aqui le dejo el codigo funete + el ejecutable, este se ejecuta e imprime no hece nada con el vector de interrupcion.
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.