SMicro

Sokoban-Grafico

May 19th, 2021 (edited)
715
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. *-----------------------------------------------------------
  2. * Title      : PINTAMAPA Sokoban
  3. * Written by : Fulgencio
  4. * Date       : 05/2021
  5. * Description: Mapa Gráfico Sokoban (solo muros y personaje)
  6. *-----------------------------------------------------------
  7. DRKGRAY EQU $404040
  8. RED    EQU $0000FF
  9.  
  10. ORIX EQU 100
  11. ORIY EQU 100
  12. SIZE EQU 40
  13. *GAP  EQU 10
  14.  
  15.     ORG    $1000
  16. START
  17.  
  18.     JSR PINTAMAPA
  19.     SIMHALT
  20.  
  21. ************SUB PINTAMAPA
  22. PINTAMAPA
  23.    MOVEM.L A1/D0-D2,-(A7)
  24.     MOVE.L #MAPA1,A1
  25.     MOVE.L #ORIX,D1
  26.     MOVE.L #ORIY,D2     *X e Y en D1 y D2
  27. BUCLE  
  28.     MOVE.B (A1)+,D0
  29.     CMP.B #0,D0
  30.     BEQ NUEVAFILA
  31.     CMP.B #'#',D0
  32.     BNE NOMURO
  33.     JSR GRIS
  34.     JSR PINTAMURO
  35. NOMURO  
  36.     CMP.B #'@',D0
  37.     BNE NOPERS1
  38.     JSR ROJO
  39.     JSR PINTAMOZO
  40. NOPERS1
  41.    CMP.B #'+',D0
  42.     BNE NOPERS2
  43.     JSR ROJO
  44.     JSR PINTAMOZO
  45. NOPERS2
  46.    *Aqui se pueden comprobar las demás cosas
  47.    
  48.     ADD.L #SIZE,D1  *Avanzamos coordenada X
  49.     JMP BUCLE
  50.        
  51. NUEVAFILA
  52.    
  53.     ADD.L #SIZE,D2  *Avanzo coordenada Y (nueva fila)
  54.     MOVE.L #ORIX,D1 *Repongo coordenada X inicial
  55.    
  56.     CMP.B #0,(A1)
  57.     BNE BUCLE
  58.     MOVEM.L (A7)+,A1/D0-D2
  59.     RTS
  60.  
  61. *************SUB PINTAMURO
  62. PINTAMURO  *Pinta un cuadrado de muro en X,Y indicado por D1 y D2
  63.     MOVEM.L D0-D4,-(A7)
  64.     MOVE.L D1,D3
  65.     MOVE.L D2,D4
  66.     ADD.L #SIZE,D3
  67.     ADD.L #SIZE,D4
  68.     MOVE.L #87,D0   *cuadrado
  69.     TRAP #15
  70.     MOVE.L #84,D0   *linea cruzada
  71.     TRAP #15
  72.     MOVEM.L (A7)+,D0-D4
  73.     RTS
  74.    
  75. ***********SUB PINTAMOZO
  76. PINTAMOZO
  77.    MOVEM.L D0-D4,-(A7)
  78.     ADD.L #SIZE/4,D1         *mitad tamaño que el muro
  79.     ADD.L #SIZE/4,D2        *quitamos 1/4 de cada lado
  80.     MOVE.L D1,D3
  81.     MOVE.L D2,D4
  82.     ADD.L #SIZE/2,D3
  83.     ADD.L #SIZE/2,D4
  84.     MOVE.L #88,D0       *círculo
  85.     TRAP #15
  86.     MOVEM.L (A7)+,D0-D4
  87.     RTS
  88.  
  89. **********SUBS COLORES    
  90. GRIS
  91.    MOVEM.L D0-D1,-(A7)
  92.     MOVE.L #81,D0
  93.     MOVE.L #DRKGRAY,D1
  94.     TRAP #15
  95.     MOVEM.L (A7)+,D0-D1
  96.     RTS
  97.    
  98. ROJO
  99.    MOVEM.L D0-D1,-(A7)
  100.     MOVE.L #81,D0
  101.     MOVE.L #RED,D1
  102.     TRAP #15
  103.     MOVEM.L (A7)+,D0-D1
  104.     RTS
  105. ************    
  106.  
  107. * Put variables and constants here
  108.  
  109. MAPA1  DC.B '###### ',0  *# BORDE
  110.         DC.B '#@   ##',0  *@ PERSONAJE
  111.         DC.B '# $$  #',0  *$ CAJAS
  112.         DC.B '# #. .#',0  *. DESTINO
  113.         DC.B '#     #',0
  114.         DC.B '#######',0,0
  115.  
  116.     END    START
Add Comment
Please, Sign In to add comment