Advertisement
SMicro

VISOR GRÁFICO BUBBLE SHOOTER

Apr 10th, 2019
1,978
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *-----------------------------------------------------------
  2. * Title      : VISUALIZADOR GRÁFICO EN 68k PARA BUBBLE SHOOTER
  3. * Written by : FULGENCIO
  4. * Date       : 2019
  5. * Description:
  6. *-----------------------------------------------------------
  7.  
  8. BLACK  EQU $00000000
  9. RED    EQU $000000FF
  10. GREEN  EQU $0000FF00
  11. YELLOW EQU $0000FFFF
  12. BLUE   EQU $00FF0000
  13. WHITE  EQU $00FFFFFF
  14. CYAN   EQU $00FFFF00
  15. MAGENTA EQU $00FF00FF
  16.    
  17. SIZE EQU 30
  18. ORIX EQU 20
  19. ORIY EQU 20
  20.  
  21.  
  22.    ORG    $1000
  23.  
  24. START              * Programa Principal
  25.  
  26.     JSR SHOWMAP     * Muestra Mapa
  27.    
  28.     SIMHALT             ; halt simulator
  29.  
  30. *************************************************************************
  31. SHOWMAP ******************************** Subrutina que muestra el estado del mapa en las coordenadas ORIX, ORIY ************************************
  32.     MOVE.L #ORIX,D1
  33.     MOVE.L #ORIY,D2 *Coordenadas iniciales del tablero
  34.     MOVE.L #MAPA+13,A3 *Posición de la primera casilla real
  35.    
  36. LOOPMAP
  37.    MOVE.B (A3)+,D0 *Obtiene el contenido
  38.     CMP.B #$80,D0
  39.     BEQ NEXTROW
  40.     *CMP.B #$00,D0
  41.     *BEQ EMPTY       *Está vacía
  42.  
  43. FILLED             *Dibuja burbuja
  44.     JSR BUBBLE
  45.     ADD.L #SIZE,D1
  46.     JMP LOOPMAP    
  47.      
  48. EMPTY
  49.    ADD.L #SIZE,D1
  50.     JMP LOOPMAP
  51.  
  52.  
  53.  
  54. NEXTROW
  55.    MOVE.L #ORIX,D1  *Retorno coordenada X inicial
  56.     ADD.L #SIZE,D2   *Avance coordenada Y
  57.     CMP.B #$40,(A3)+ *Comprueba línea par/impar
  58.     BNE NODESP
  59.     ADD.L #SIZE/2,D1 *Si tiene un $40, la fila se desplaza medio hueco a derecha
  60. NODESP  
  61.     CMP.B #$80,(A3)
  62.     BNE LOOPMAP  
  63.     RTS
  64. **************************************************************************
  65.  
  66.    
  67. BUBBLE
  68.    MOVEM.L D0-D4,-(A7)
  69.     JSR FILLCOLOR   *Elijo un color de relleno
  70.     MOVE.L #88,D0   *Circulo CON relleno
  71.     MOVE.L D1,D3
  72.     MOVE.L D2,D4    *Copio coordenadas esquina izquierda en D3,D4
  73.     ADD.L #SIZE,D3
  74.     ADD.L #SIZE,D4  *Creo coordenadas esquina derecha separándolas SIZE pixels
  75.     TRAP #15
  76.     MOVEM.L (A7)+,D0-D4
  77.     RTS
  78.    
  79. FILLCOLOR
  80.    MOVEM.L D0-D1/A1,-(A7)
  81.     MOVE.L #TABLACOLOR,A1
  82.     MULU #4,D0          *La tabla es de LONG
  83.     MOVE.L (A1,D0),D1   *D1 tiene color de la bola
  84.     MOVE.L #81,D0       *Color relleno
  85.     TRAP #15
  86.     MOVE.L #80,D0       *Color linea
  87.     TRAP #15
  88.     MOVEM.L (A7)+,D0-D1/A1
  89.     RTS    
  90.  
  91.  
  92. * Put variables and constants here
  93.     ORG $4000
  94.     *El borde izquierdo está marcado con $80 o $40, para indicar fila par o impar
  95. MAPA
  96.  DC.B $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
  97.  DC.B $80,$02,$03,$06,$04,$05,$03,$01,$05,$01,$05,$80
  98.  DC.B $40,$03,$03,$05,$02,$01,$05,$04,$04,$03,$03,$80
  99.  DC.B $80,$01,$03,$01,$06,$04,$04,$01,$04,$01,$02,$80
  100.  DC.B $40,$02,$04,$05,$02,$06,$01,$04,$05,$04,$01,$80
  101.  DC.B $80,$00,$06,$06,$02,$01,$06,$05,$06,$05,$01,$80
  102.  DC.B $40,$02,$04,$02,$02,$02,$01,$04,$03,$03,$06,$80
  103.  DC.B $80,$00,$00,$04,$06,$06,$04,$05,$03,$02,$04,$80
  104.  DC.B $40,$05,$05,$06,$00,$04,$05,$03,$02,$06,$02,$80
  105.  DC.B $80,$00,$02,$05,$00,$02,$02,$03,$05,$05,$04,$80
  106.  DC.B $40,$00,$02,$04,$05,$00,$06,$05,$02,$00,$06,$80
  107.  DC.B $80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80,$80
  108.  
  109.  
  110. TABLACOLOR
  111.     DC.L BLACK
  112.     DC.L RED
  113.     DC.L GREEN
  114.     DC.L BLUE
  115.     DC.L MAGENTA
  116.     DC.L YELLOW
  117.     DC.L CYAN
  118.  
  119.     END    START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement