Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title :Lectura de teclado sin esperas
- * Written by :Fulgencio
- * Date : 05/2015
- * Description: Sirve para poder detectar si ciertas teclas
- * están pulsadas incluso simultáneamente.
- * También ilustra el uso de la Task 11 para
- * posicionar el cursor
- *-----------------------------------------------------------
- CTRL EQU $11 ;ver Key Codes en HELP Task 19
- ALT EQU $12
- SPACE EQU $20
- LEFT EQU $25
- UP EQU $26
- RIGHT EQU $27
- DOWN EQU $28
- ORG $1000
- START: ; first instruction of program
- move.b #19,d0
- move.l #(DOWN<<24+RIGHT<<16+UP<<8+LEFT),d1
- ;Monitorizamos las FLECHAS
- ;Se pueden monitorizar hasta
- ;4 teclas a la vez mediante
- ;CODE4<<24+CODE3<<16+CODE2<<8+CODE1
- trap #15
- BTST #0,D1 comprueba tecla LEFT (menos significativa)
- BNE GOLEFT
- BTST #8,D1 comprueba UP
- BNE GOUP
- BTST #16,D1 comprueba RIGHT
- BNE GORIGHT
- BTST #24,D1 comprueba RIGHT
- BNE GODOWN
- *Si no hay ninguna pulsada procede a borrar la información*
- *escribiendo espacios encima del texto existente*
- MOVE.L #0<<8+10,D1 ;Coordenada 0,10. Mete $000A en D1
- MOVE.L #11,D0 ;Task 11 posiciona el cursor
- TRAP #15
- MOVE.L #14,D0
- MOVE.L #VACIO,A1
- TRAP #15 ;borra toda la línea si no hay teclas pulsadas
- JMP START
- GOLEFT
- MOVE.L #10<<8+10,D1 ;coordenada 10,10
- MOVE.L #11,D0
- TRAP #15
- MOVE.L #TECLEFT,A1
- move.l #14,d0
- trap #15
- JMP SIGUE
- GOUP
- MOVE.L #20<<8+10,D1 ;coordenada 20,10
- MOVE.L #11,D0
- TRAP #15
- MOVE.L #TECUP,A1
- move.l #14,d0
- trap #15
- JMP SIGUE
- GORIGHT
- MOVE.L #30<<8+10,D1 ;coordenada 30,10
- MOVE.L #11,D0
- TRAP #15
- MOVE.L #TECRIGHT,A1
- move.l #14,d0
- trap #15
- JMP SIGUE
- GODOWN
- MOVE.L #40<<8+10,D1 ;coordenada 40,10
- MOVE.L #11,D0
- TRAP #15
- MOVE.L #TECDOWN,A1
- move.l #14,d0
- trap #15
- JMP SIGUE
- *SPC
- * MOVE.L #50<<8+10,D1 ;coordenada 50,10
- * MOVE.L #11,D0
- * TRAP #15
- *
- * MOVE.L #TECSPC,A1
- * move.l #14,d0
- * trap #15
- * JMP SIGUE
- *
- *CONTROL
- * MOVE.L #60<<8+10,D1 ;coordenada 60,10
- * MOVE.L #11,D0
- * TRAP #15
- *
- * MOVE.L #TECCTRL,A1
- * move.l #14,d0
- * trap #15
- SIGUE
- move.l #6,d0 *Avance de linea+retorno carro
- move.l #13,d1
- trap #15
- move.l #10,d1
- trap #15
- jmp START
- * Put program code here
- SIMHALT ; halt simulator
- * Put variables and constants here
- *TECCTRL DC.B ' [CONTROL] ',0
- *TECSPC DC.B ' [ESPACIO] ',0
- TECLEFT DC.B ' [ LEFT ] ',0
- TECUP DC.B ' [ UP ] ',0
- TECRIGHT DC.B ' [ RIGHT ] ',0
- TECDOWN DC.B ' [ DOWN ] ',0
- VACIO DC.B ' ',0
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement