SMicro

SORT-IT_GRAFICO

May 18th, 2021 (edited)
969
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *-----------------------------------------------------------
  2. * Title      : Presentación Gráfica Sort-It (PINTARECIP)
  3. * Written by : Fulgencio
  4. * Date       : Mayo 2021
  5. * Description: Representación gráfica de contenedores con bolas para el juego Sort-it
  6. *              A partir de un mapa con números que indican los colores de las bolas
  7. *              son representados gráficamente en Easy68k
  8. *-----------------------------------------------------------
  9.     ORG    $1000
  10. BLACK equ $00000000
  11. MAROON equ $00000080
  12. GREEN equ $00008000
  13. OLIVE equ $00008080
  14. NAVY equ $00800000
  15. PURPLE equ $00800080
  16. TEAL equ $00808000
  17. GRAY equ $00808080
  18. RED equ $000000FF
  19. LIME equ $0000FF00
  20. YELLOW equ $0000FFFF
  21. BLUE equ $00FF0000
  22. FUCHSIA equ $00FF00FF
  23. AQUA equ $00FFFF00
  24. LTGRAY equ $00C0C0C0
  25. WHITE equ $00FFFFFF
  26.    
  27. ORIX EQU 100
  28. ORIY EQU 100
  29. SIZE EQU 50
  30. GAP EQU 80
  31. THICK EQU 10
  32.  
  33. HUECO EQU 0
  34. ROJA EQU 1
  35. VERDE EQU 2
  36. AMARILLA EQU 3
  37.    
  38. START:                 ; first instruction of program
  39.    
  40.     JSR PINTARECIP
  41.     SIMHALT  
  42.  
  43.    
  44. PINTARECIP
  45.    MOVEM.L A1/D0-D2,-(A7)
  46.    
  47.     MOVE.L #MAPA,A1
  48.     MOVE.L #ORIX,D1
  49.     MOVE.L #ORIY,D2
  50.    
  51. BUCLEBOLA
  52.     MOVE.B (A1)+,D0  *TOMA BOLA
  53.     CMP.B #10,D0
  54.     BCC OTRORECIP
  55.    
  56.     JSR COLOR
  57.     JSR BOLA
  58.  
  59.     ADD.L #SIZE,D2   *Avanza coordenada Y hacia abajo
  60.     JMP BUCLEBOLA
  61.    
  62. OTRORECIP
  63.    SUB.L #10,D0     *Obtiene el color de base del recipiente
  64.     JSR COLOR
  65.     JSR BASE         *Dibuja la base de color
  66.     ADD.L #GAP,D1    *Avanza coordenada X a derecha
  67.     MOVE.L #ORIY,D2  
  68.     CMP.B #$FF,(A1)
  69.     BNE BUCLEBOLA
  70.     MOVEM.L (A7)+,A1/D0-D2
  71.     RTS
  72.  
  73. COLOR
  74.    MOVEM.L D0-D1/A0,-(A7)
  75.     MOVE.L #COLORES,A0  *Utilizamos una tabla indexada con los colores
  76.     LSL #2,D0           *índice x4 porque cada color es un LONG
  77.     MOVE.L (A0,D0),D1   *coge el color de la tabla indexada COLORES
  78.     MOVE.L #81,D0       *fill color
  79.     TRAP #15
  80. *    MOVE.L #80,D0      *pen color
  81. *    TRAP #15
  82.     MOVEM.L (A7)+,D0-D1/A0
  83.     RTS
  84.    
  85.  
  86. BOLA   MOVEM.L D0-D5,-(A7)
  87.         *MOVE.L D0,D5    *salvamos color -poder evitar bolas negras-
  88.         MOVE.L D1,D3    *Peparamos
  89.         MOVE.L D2,D4
  90.         ADD.L #SIZE,D4
  91.        
  92.         MOVE.L #84,D0   *primero línea
  93.         TRAP #15        *linea vertical izquierda
  94.         ADD.L #SIZE,D3
  95.         *CMP.L #0,D5    *para evitar pintar bolas negras (dejar hueco)
  96.         *BEQ NOCIRCULO
  97.         MOVE.L #88,D0   *círculo
  98.         TRAP #15        *bola
  99. *NOCIRCULO      
  100.         ADD.L #SIZE,D1
  101.         MOVE.L #84,D0   *línea
  102.         TRAP #15        *linea vertical derecha
  103.         MOVEM.L (A7)+,D0-D5
  104.         RTS
  105.  
  106. BASE   MOVEM.L D0-D4,-(A7)
  107.         MOVE.L D1,D3
  108.         MOVE.L D2,D4      
  109.         ADD.L #SIZE,D3
  110.         ADD.L #THICK,D4 *THICK es el grosor de la base
  111.         MOVE.L #87,D0   *rectángulo
  112.         TRAP #15
  113.         MOVEM.L (A7)+,D0-D4
  114.         RTS
  115.  
  116.    
  117. * Put variables and constants here
  118.  
  119.  
  120. COLORES DC.L BLACK,RED,GREEN,YELLOW   *0,1,2,3
  121.  
  122. MAPA DC.B 0,3,2,10
  123.      DC.B 1,1,2,11
  124.      DC.B 0,3,1,12
  125.      DC.B 0,3,3,$FF         *$FF = fin de recipientes
  126.  
  127.  
  128.     END    START
Add Comment
Please, Sign In to add comment