Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *-----------------------------------------------------------
- * Title : VISUALIZADOR GRÁFICO EN 68k PARA 1010
- * Written by : FULGENCIO
- * Date : 2019
- * Description:
- *-----------------------------------------------------------
- BLACK EQU $00000000
- RED EQU $000000FF
- GREEN EQU $0000FF00
- YELLOW EQU $0000FFFF
- BLUE EQU $00FF0000
- WHITE EQU $00FFFFFF
- SIZE EQU 30
- ORIX EQU 20
- ORIY EQU 20
- ORIP1X EQU 400
- ORIP1Y EQU 20
- ORIP2X EQU 400
- ORIP2Y EQU 200
- ORG $1000
- START * Programa Principal
- JSR SHOWMAP * Muestra Mapa
- MOVE.L #ORIP1X,D1
- MOVE.L #ORIP1Y,D2 *Coordenadas iniciales de pisición de la pieza1
- MOVE.L #FICHAL3,A3 *Posición de la primera casilla de la pieza1
- JSR SHOWPIECE * Muestra pieza 1
- MOVE.L #ORIP2X,D1
- MOVE.L #ORIP2Y,D2 *Coordenadas iniciales de pisición de la pieza2
- MOVE.L #FICHAV5,A3 *Posición de la primera casilla de la pieza2
- JSR SHOWPIECE * Muestra pieza 2
- SIMHALT ; halt simulator
- *************************************************************************
- SHOWMAP ******************************** Subrutina que muestra el estado del mapa en las coordenadas ORIX, ORIY ************************************
- MOVE.L #ORIX,D1
- MOVE.L #ORIY,D2 *Coordenadas iniciales del tablero
- MOVE.L #MAPA+13,A3 *Posición de la primera casilla real
- LOOPMAP
- MOVE.B (A3)+,D0 *Obtiene el contenido
- CMP.B #$80,D0
- BEQ NEXTROW
- CMP.B #$01,D0
- BEQ FILLED *Está llena
- CMP.B #$00,D0
- BEQ EMPTY *Está vacía
- EMPTY
- JSR EMPTYSQUARE
- ADD.L #SIZE,D1
- JMP LOOPMAP
- FILLED
- 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 #$80,(A3)
- BNE LOOPMAP
- RTS
- **************************************************************************
- SHOWPIECE **************************************** Subrutina para mostrar la pieza apuntada por A3 en la coordenada indicada por D1,D2 *****************************
- MOVE.L D1,-(A7) *Guardo coordenada X inicial
- LOOPPIECE
- MOVE.B (A3)+,D0 *Obtiene el contenido
- CMP.B #$80,D0
- BEQ NEXTROWP
- CMP.B #$01,D0
- BEQ FILLEDP *Está llena
- CMP.B #$00,D0
- BEQ EMPTYP *Está vacía
- EMPTYP
- *JSR EMPTYSQUARE *Para las fichas, no pinto los vacíos
- ADD.L #SIZE,D1
- JMP LOOPPIECE
- FILLEDP
- JSR FILLEDSQUARE
- ADD.L #SIZE,D1
- JMP LOOPPIECE
- NEXTROWP
- MOVE.L (A7)+,D1 *Recupero coordenada X inicial
- ADD.L #SIZE,D2 *Avance coordenada Y
- *ADD.L #1,A3 *No hay borde izquierdo
- CMP.B #$80,(A3)
- BNE SHOWPIECE
- RTS
- *************************************************************************
- EMPTYSQUARE
- MOVE.L #90,D0 *Cuadrado sin 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
- FILLEDSQUARE
- JSR FILLGREEN *Elijo un color de relleno
- 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
- FILLGREEN
- MOVEM.L D0-D1,-(A7)
- MOVE.L #81,D0
- MOVE.L #GREEN,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 $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
- DC.B $80,$00,$00,$00,$00,$01,$01,$01,$00,$00,$00,$80
- DC.B $80,$00,$00,$00,$00,$01,$01,$01,$00,$00,$00,$80
- DC.B $80,$01,$00,$01,$00,$01,$01,$01,$00,$00,$01,$80
- DC.B $80,$01,$00,$01,$00,$01,$01,$01,$01,$01,$01,$80
- DC.B $80,$01,$00,$01,$01,$01,$01,$01,$01,$01,$01,$80
- DC.B $80,$01,$00,$00,$01,$01,$01,$01,$01,$01,$01,$80
- DC.B $80,$01,$00,$01,$01,$01,$00,$00,$00,$00,$01,$80
- DC.B $80,$01,$00,$01,$01,$01,$01,$01,$01,$01,$01,$80
- DC.B $80,$01,$00,$01,$01,$01,$01,$01,$01,$01,$01,$80
- DC.B $80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80
- DC.B $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
- ******************* Las fichas las he definido solo con los límites derecho y abajo. Se podría hacer lo mismo con el mapa ****************************
- FICHAL3
- DC.B $01,$00,$00,$80
- DC.B $01,$00,$00,$80
- DC.B $01,$01,$01,$80
- DC.B $80,$80,$80,$80
- FICHAV5
- DC.B $01,$80
- DC.B $01,$80
- DC.B $01,$80
- DC.B $01,$80
- DC.B $01,$80
- DC.B $80,$80
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement