Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : VISUALIZADOR GRÁFICO LIFE
- * Written by : FULGENCIO
- * Date : 2020
- * Description:
- *-----------------------------------------------------------
- ****** Colores ******
- BLACK EQU $00000000
- GRAY EQU $00808080
- RED EQU $000000FF
- GREEN EQU $0000FF00
- YELLOW EQU $0000FFFF
- BLUE EQU $00FF0000
- WHITE EQU $00FFFFFF
- *********** Parámetros del tablero **********
- SIZE EQU 20
- ORIX EQU 20
- ORIY EQU 20
- ORG $1000
- START * Programa Principal
- JSR SHOWMAP * Muestra Mapa
- SIMHALT * halt simulator
- ********************************* SUBRUTINAS *********************************
- SHOWMAP ******** Subrutina que muestra el estado del mapa en las coordenadas ORIX, ORIY ************************************
- *Utiliza D0,D1,D2,D3,D4 y A3*
- MOVEM.L D0-D4/A3,-(A7) *Guardamos en la pila
- MOVE.L #ORIX,D1
- MOVE.L #ORIY,D2 *Coordenadas iniciales del tablero
- MOVE.L #MAPA,A3 *Inicio del MAPA
- BUSCAINI
- CMP.B #2,(A3)+
- BEQ BUSCAINI *Descarta las casillas de borde (2) hasta que llegue a la primera real
- SUB.L #1,A3 *Al usar postincremento, nos pasamos en 1
- LOOPMAP
- MOVE.B (A3)+,D0 *Obtiene el contenido
- CMP.B #2,D0
- BEQ NEXTROW
- CMP.B #1,D0
- BEQ ALIVE *Está viva
- CMP.B #$00,D0
- BEQ DEATH *Está muerta
- DEATH
- JSR FILLGRAY
- JSR FILLEDSQUARE
- ADD.L #SIZE,D1
- JMP LOOPMAP
- ALIVE
- JSR FILLYELLOW
- JSR FILLEDSQUARE
- ADD.L #SIZE,D1
- JMP LOOPMAP
- NEXTROW
- MOVE.L #ORIX,D1 *Retorno coordenada X inicial
- ADD.L #SIZE,D2 *Avance coordenada Y
- ADD.L #1,A3 *Salta el borde izquierdo
- CMP.B #2,(A3) *Comprueba si es el borde de abajo
- BNE LOOPMAP
- MOVEM.L (A7)+,D0-D4/A3 *Recuperamos valores de la pila
- RTS
- FILLEDSQUARE
- MOVE.L #87,D0 *Cuadrado CON relleno
- MOVE.L D1,D3
- MOVE.L D2,D4 *Copio coordenadas esquina izquierda en D3,D4
- ADD.L #SIZE,D3
- ADD.L #SIZE,D4 *Creo coordenadas esquina derecha separándolas SIZE pixels
- TRAP #15
- RTS
- FILLYELLOW
- MOVEM.L D0-D1,-(A7)
- MOVE.L #81,D0
- MOVE.L #YELLOW,D1 *Selecciono verde como color de relleno
- TRAP #15
- MOVEM.L (A7)+,D0-D1
- RTS
- FILLGRAY
- MOVEM.L D0-D1,-(A7)
- MOVE.L #81,D0
- MOVE.L #GRAY,D1 *Selecciono verde como color de relleno
- TRAP #15
- MOVEM.L (A7)+,D0-D1
- RTS
- * Put variables and constants here
- ORG $4000
- MAPA
- DC.B 2,2,2,2,2,2,2,2,2,2,2,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,0,1,0,0,0,0,0,0,0,0,2
- DC.B 2,1,0,1,0,0,0,0,0,0,0,2
- DC.B 2,1,0,1,0,0,0,0,0,0,0,2
- DC.B 2,0,1,0,0,0,0,0,1,1,1,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,0,0,0,0,0,0,0,0,0,0,2
- DC.B 2,2,2,2,2,2,2,2,2,2,2,2
- END START
Add Comment
Please, Sign In to add comment