Inicialización del mouse

Inicialización del mouse

de Marcel Pedro Rodrigues Daniello -
Número de respuestas: 4
Hola no logramos inicializar el mouse porque se queda en wait_loop_10 linea 253 de la plantilla, djnz wait_loop_10, no decrementa el registro b.

Para inicializar el mouse hay que hacer un .include "plantilla_lab2.s" al comienzo de prueba espero flanco ?


En respuesta a Marcel Pedro Rodrigues Daniello

Re: Inicialización del mouse

de Julio Perez -

No.

Lo que tienen que hacer es leer la plantilla, entenderla y escribir el programa de ustedes en el lugar previsto para eso en la plantilla.

Pueden copiarla con otro nombre (prueba_partexx.s p. ej.) y trabajar sobre esa copia.


julio

En respuesta a Marcel Pedro Rodrigues Daniello

Re: Inicialización del mouse

de Leonardo Etcheverry -
Otra aclaración, no intenten ejecutar paso a paso las rutinas de inicialización del mouse. Hay varios loops (como el djnz wait_loop_10 por ejemplo) que se usan para esperar lapsos de tiempo específicos que son requeridos para la inicialización del mouse. Si ustedes se quedan parados o avanzando paso a paso manualmente, esos tiempos ya no se van a respetar.

Ya que lo mencionaron, djnz wait_loop_10 no decrementa el registro B *solamente* cuando uno corre paso a paso en el debugger. Esto es provocado por un bug bastante específico en el debugger: para un salto del estilo "loop: djnz loop" (en otras palabras, un loop sin cuerpo), nunca se llega a ejecutar la instrucción y por tanto B no cambia. La mejor manera de evitar esto es poner un breakpoint más adelante, luego del djnz y evitar el stepping en ese caso.

Saludos,
leo.
En respuesta a Leonardo Etcheverry

Re: Inicialización del mouse

de Marcel Pedro Rodrigues Daniello -
Hola seguimos sin poder utilizar el mouse en la placa.

Probamos haciendo breakpoint luego del wait y en otros lugares pero no conseguimos salir del call mouse_init y que entre a nuestro programa de prueba.


;;; I/O ports suministrados

    .equ LEDS, 0x84

    .equ HEX0, 0x80

    .equ HEX1, HEX0+1

    .equ HEX2, HEX0+2

    .equ HEX3, HEX0+3

;;; completar de acuerdo a lo solicitado en parte (b)

    .equ PSDAT_I      , 0x82

    .equ PSCLK_I      , 0x81

    .equ PSDAT_O      , 0x86

    .equ PSCLK_O      , 0x85

    .equ CL_PSCLK     , 0x87

;;; Aqui comienza el programa principal

    .text

main:

        ;; inicializacion del stack

        ld sp, 0

        ;; Inicializacion del raton

call mouse_init

        ;; a partir de aqu incluir el programa principal solicitado

       Nuestro programa de prueba 

       

;;; fin de programa principal


;;; subrutinas suministradas

    .include "ps2-lib.s"


;;; otras subrutinas

    .include "get_ps2.s"

.include "esperoflanco.s"

.include "pbcda7seg.s"

.include "binapbcd.s"

;;; Aqui se colocan las variables utilizadas por el programa

    .data

tab_h7s:

; _gfedcba

db 11000000B ; 0

db 11111001B ; 1

db 10100100B ; 2

db 10110000B ; 3

db 10011001B ; 4

db 10010010B ; 5

db 10000010B ; 6

db 11111000B ; 7

db 10000000B ; 8

db 10010000B ; 9

    .end