Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title :EJEMPLO BÁSICO DE REPRESENTACIÓN DE UN MAPA MATRIZ 8x8 PARA EL JUEGO DAMAS
- * Written by :Fulgencio
- * Date :04/2016
- * Description:Se trata de a partir de una representación del tablero en la memoria, representar
- * los elementos en la pantalla en modo texto. Se podría extrapolar la idea a un modo gráfico
- * realizando los escalados oportunos para situar la ficha en el tablero gráfico
- *-----------------------------------------------------------
- VACIO EQU 0
- BLANCA EQU 1
- NEGRA EQU 2
- ORG $1000
- START: ; first instruction of program
- * Put program code here
- CLR.L D2 ; D2=COLUMNA
- CLR.L D3 ; D3=FILA
- MOVE.L #TABLERO,A3 ;A3 apunta a la matrix 8x8
- REINICIO
- MOVE.B #8,D4 ;Contador de columna. Cada 8 saltamos a otra fila
- BUCLE
- MOVE.L D3,D0
- MULU #8,D0
- ADD.L D2,D0 *D0=D3*8+D2 (bidimensional -> unidimensional)
- MOVE.B (A3,D0),D1 *Cogemos el elemento de la matriz D1=FICHA o VACÍO
- *Compara con opciones
- CMP.B #VACIO,D1
- BEQ PINTAVACIO
- CMP.B #BLANCA,D1
- BEQ PINTABLANCA
- CMP.B #NEGRA,D1
- BEQ PINTANEGRA
- PINTAVACIO
- MOVE.B #'.',D1
- BRA NEXT
- PINTABLANCA
- MOVE.B #'O',D1
- BRA NEXT
- PINTANEGRA
- MOVE.B #'X',D1
- NEXT
- MOVE.B #6,D0 *Pinta un caracter almacenado en D1
- TRAP #15
- ADD.L #1,D2 * Avanza columna
- CMP.L #8,D2 * Si es la ultima
- BNE BUCLE
- MOVE.L #0,D2 * Columna 0
- ADD.L #1,D3 * Avanzamos fila
- JSR NUEVAFILA
- CMP.L #8,D3 * ¿ Ya no hay mas ?
- BNE BUCLE
- SIMHALT
- NUEVAFILA
- MOVEM.L D0/A1,-(A7) *Guardamos en pila
- MOVE.L #14,D0
- MOVE.L #CRLF,A1
- TRAP #15
- MOVEM.L (A7)+,D0/A1 *Recuperamos de la pila
- RTS
- * Put variables and constants here
- *TABLERO CORRESPONDE AL MAPA DE ESTADO DEL TABLERO 8x8. Se necesitan 64 elementos organizados en 8x8
- *Como una celda solo puede estar o vacía (0) o conteniendo una ficha blanca o negra(1 o 2)
- TABLERO
- DC.B 0,2,0,2,0,2,0,2
- DC.B 2,0,2,0,2,0,2,0
- DC.B 0,2,0,2,0,2,0,2
- DC.B 0,0,0,0,0,0,0,0
- DC.B 0,0,0,0,0,0,0,0
- DC.B 1,0,1,0,1,0,1,0
- DC.B 0,1,0,1,0,1,0,1
- DC.B 1,0,1,0,1,0,1,0
- CRLF DC.B 10,13,0 *Cadena que representa avance de linea + retorno de carro
- END START ; last line of source
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement