Advertisement
SMicro

LEE TECLADO SIN ESPERA

May 14th, 2015
846
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *-----------------------------------------------------------
  2. * Title      :LECTURA DE TECLADO SIN ESPERA
  3. * Written by :Fulgencio
  4. * Date       :05/2015
  5. * Description: Este ejemplo realiza una lectura de tecla mediante
  6. *              la Task 5, pero para evitar que se quede en espera
  7. *              en caso de que no esté pulsada ninguna tecla, se llama
  8. *              previamente a la Task 7 que nos indica si hay o no tecla
  9. *              pulsada
  10. *-----------------------------------------------------------
  11.     ORG    $1000
  12. START:                  ; first instruction of program
  13.  
  14.     MOVE.L #12,D0
  15.     MOVE.L #0,D1
  16.     TRAP #15   *Anulamos el eco de pantalla para que no
  17.                *se vea la tecla que estamos pulsando
  18.  
  19. BUCLE
  20.     MOVE.L #7,D0
  21.     TRAP #15
  22.     CMP.L #0,D1  *Comprueba D1 para ver si hay tecla pendiente
  23.     BEQ NOTECLA  *Si no hay tecla pendiente no se detiene a leerla
  24.    
  25. * Put program code here
  26.     MOVE.L #5,D0 *Si entra aquí es que hay una tecla pulsada
  27.     TRAP #15  *En D1 tenemos la tecla pulsada
  28.    
  29.     JSR CURORI *Cursor al origen
  30.    
  31.     MOVE.L #14,D0
  32.     MOVE.L #PULSADA,A1  
  33.     TRAP #15            *Saca mensaje pulsada la tecla
  34.    
  35.     MOVE.L #6,D0    *Task 6 imprime una
  36.     TRAP #15        *Escribe la tecla pulsada que teniamos en D1
  37.    
  38.    
  39.     JSR RETARDO
  40.     JSR RETARDO
  41.     JSR RETARDO
  42.     JSR RETARDO
  43.    
  44.     JSR CURORI  
  45.     JMP BUCLE    
  46.  
  47. NOTECLA
  48.  
  49.     JSR CURORI *Cursor al origen
  50.     MOVE.L #14,D0
  51.     MOVE.L #NOTECTXT,A1  
  52.     TRAP #15            *Saca mensaje pulsa una tecla
  53.    
  54.     JSR RETARDO
  55.     JSR CURORI *Cursor al origen
  56.    
  57.     MOVE.L #14,D0
  58.     MOVE.L #BLANCOS,A1
  59.     TRAP #15     *Borra mensaje escribiendo espacios encima
  60.     JSR RETARDO  *Así, escribiendo y borrando hacemos efecto
  61.                  *parpadeo para ver que no está parado esperando
  62.     JMP BUCLE
  63.     SIMHALT             ; halt simulator
  64.  
  65.  
  66. RETARDO MOVEM.L D0-D1,-(A7)
  67.         MOVE.L #23,D0
  68.         MOVE.L #20,D1
  69.         TRAP #15
  70.         MOVEM.L (A7)+,D0-D1
  71.         RTS
  72.        
  73. CURORI  MOVEM.L D0-D1,-(A7)
  74.         MOVE.L #11,D0
  75.         MOVE.L #$00,D1
  76.         TRAP #15
  77.         MOVEM.L (A7)+,D0-D1
  78.         RTS
  79.        
  80. * Put variables and constants here
  81. NOTECTXT DC.B 'PULSA UNA TECLA  ',0
  82. BLANCOS  DC.B '                 ',0
  83. PULSADA  DC.B 'TECLA PULSADA: ',0
  84.     END    START        ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement