Advertisement
Guest User

Pintar con CPU

a guest
Nov 20th, 2019
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;--------------------------------------------------------------------
  2. ;
  3. ;(C) tolkien / Goblins 2019.
  4. ;
  5. ;--------------------------------------------------------------------
  6.     opt c-,p=68000
  7.     section demophase,code
  8.  
  9. ;Activa o desactiva el canal DMA deseado
  10. COPPER      =   1  
  11. BLITTER     =   1
  12. SPRITE      =   0
  13. DISK        =   0
  14. NASTY       =   0   ;Activa Nasty Mode del Blitter
  15. TOPAZ       =   0   ;Usa Topaz
  16. VBI     =   0   ;activa VertivalBlankInterrupt
  17. CPI     =   0
  18.  
  19. NUMPLANES   =   1   ;16 colores
  20. Plane_Size  =   40*256
  21.  
  22. ;Este include contiene las rutinas asesinas del sistema
  23.     include includes/SkyInit.s 
  24.     include includes/GoblinsCustom.i
  25.                            
  26. ;-----------------------------------------------------------
  27. ; Precalculos de la demo. SinTables, etc.
  28. ; Invocada ANTES de tomar el sistema.
  29. ;-----------------------------------------------------------
  30. _Precalc:
  31.  
  32.  
  33.     rts
  34.    
  35.  
  36. ;-----------------------------------------------------------
  37. ; Seccion principal
  38. ; Invocada por SkyInit. La demo termina cuando se sale
  39. ; de esta rutina.
  40. ;-----------------------------------------------------------
  41. _Main: 
  42.     moveq   #NumPlanes-1,d1
  43.     move.l  #screen,d0      ;direccion de nuestra imagen
  44.     lea Planes,a1       ;registro de bitplanos en la copperlist
  45. .bp
  46.     move.w  d0,6(a1)
  47.     swap    d0
  48.     move.w  d0,2(a1)
  49.     swap    d0
  50.     add.l   #Plane_Size,d0
  51.     add.l   #8,a1           ;siguiente puntero a plano
  52.     dbra    d1,.bp
  53.  
  54.     ;Iniciamos nuestra copperlist
  55.     move.l  #copperlist,COP1LCH+CUSTOMBASE
  56.     clr.w   COPJMP1+CUSTOMBASE
  57.  
  58.     ;pintamos el grafico en screen
  59.     lea grafico,a0
  60.     lea screen,a1
  61.     moveq.l #16-1,d0    ;16 lineas
  62. .loop
  63.     move.w  (a0)+,(a1)+ ;copiamos un word del gráfico a la pantalla
  64.     adda.l  #38,a1
  65.     dbf d0,.loop
  66.  
  67.     ;Pulsamos el boton del raton para salir
  68. _Wait
  69.     btst    #6,$bfe001
  70.     bne.s   _Wait
  71.    
  72.     rts
  73.  
  74. ;-----------------------------------------------------------
  75. ; Finalizacion de la demo (respuesta a WB).
  76. ; Invocada tras la restauracion del sistema.
  77. ;-----------------------------------------------------------
  78. _Exit:
  79.    
  80.     rts
  81.  
  82.  
  83.  
  84. ;-----------------------------------------------------------
  85. ; Invocado por la interrupcion vblank. Se invoca 50 veces
  86. ; por segundo.
  87. ;-----------------------------------------------------------
  88. _Interrupt:
  89.  
  90.     rts
  91.  
  92. _CopperInt:
  93.  
  94.     rts
  95.  
  96.     section datos,data
  97. grafico:
  98.     dc.w    %1111111111111111
  99.     dc.w    %1100000000000011
  100.     dc.w    %1010000000000101
  101.     dc.w    %1001000000001001
  102.     dc.w    %1000100000010001
  103.     dc.w    %1000010000100001
  104.     dc.w    %1000001001000001
  105.     dc.w    %1000000110000001
  106.     dc.w    %1000000110000001
  107.     dc.w    %1000001001000001
  108.     dc.w    %1000010000100001
  109.     dc.w    %1000100000010001
  110.     dc.w    %1001000000001001
  111.     dc.w    %1010000000000101
  112.     dc.w    %1100000000000011
  113.     dc.w    %1111111111111111
  114.  
  115. ;SECCIONES EN MEMORIA CHIP PARA BITPLANOS Y COPPERLIST
  116.  
  117.     section bitplanes,data_c
  118. screen:
  119.         ds.b    40*256      ;40 bytes por linea * 256 lineas
  120.     ;incbin "data/16colores.raw"
  121.    
  122.         section copperlist,data_c  
  123. ;------------------------------------------------------------------
  124. ;   MAIN COPPERLIST
  125. ;------------------------------------------------------------------
  126. copperlist:
  127.         dc.w    DiWStrt,$2C81,DiWStop,$2cC1,DdfStrt,$0038,DdfStop,$00D0
  128.         dc.w    BplCon0,$1200,BplCon3,$0000,AgaFMode,$0000
  129.         dc.w    BplCon1,$0000,BplCon2,$0000
  130.         dc.w    Bpl1Mod,$0000,Bpl2Mod,$0000
  131.  
  132.     ;LOS COLORES DE NUESTRA IMAGEN CONVERTIDOS CON PICCON O ARTPRO
  133.         dc.w    $0180,$0000,$0182,$0fff     ;,$0184,$0FFF,$0186,$0888
  134.     ;dc.w   $0188,$0A20,$018A,$0D50,$018C,$0EB0,$018E,$0080
  135.     ;dc.w   $0190,$06B0,$0192,$0170,$0194,$05BC,$0196,$0367
  136.     ;dc.w   $0198,$007B,$019A,$0048,$019C,$0E88,$019E,$0B55
  137.  
  138. Planes:
  139.         dc.w    Bpl1Pth,$0000,Bpl1Ptl,$0000     ;punteros del Bitplano 1
  140.     ;DC.W    Bpl2Pth,$0000,Bpl2Ptl,$0000     ;punteros del Bitplano 2
  141.     ;DC.W    Bpl3Pth,$0000,Bpl3Ptl,$0000     ;punteros del Bitplano 3
  142.     ;DC.W    Bpl4Pth,$0000,Bpl4Ptl,$0000     ;punteros del Bitplano 4
  143.  
  144.         dc.w    $ffff,$fffe         ;Fin de la copperlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement