Advertisement
Guest User

Untitled

a guest
Dec 1st, 2019
160
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.     move.l  #grafico,a0
  60.     move.l  #screen,a1
  61.     ;Siempre hay que esperar a que el blitter esté libre
  62.     ;antes de volver a usarlo.
  63. .waitblitter
  64.     btst    #14-8,dmaconr+custombase
  65.     bne .waitblitter
  66.  
  67.     ;move.l #-1,BltAFwm+CustomBase
  68.     move.l  #$09f00000,bltcon0+CustomBase   ;Copia lo que hay en A en D
  69.     move.w  #0,BltAMod+CustomBase           ;modulo del gráfico
  70.     move.w  #38,BltDMod+CustomBase          ;modulo de la pantalla
  71.     move.l  a0,BltApth+CustomBase           ;direccion del grafico
  72.     move.l  a1,BltDpth+CustomBase           ;dirección de la pantalla
  73.     move.w  #16<<6+1,BltSize+CustomBase     ;tamaño del gráfico a pintar
  74.  
  75.     ;Pulsamos el boton del raton para salir
  76. _Wait
  77.     btst    #6,$bfe001
  78.     bne.s   _Wait
  79.    
  80.     rts
  81.  
  82. ;-----------------------------------------------------------
  83. ; Finalizacion de la demo (respuesta a WB).
  84. ; Invocada tras la restauracion del sistema.
  85. ;-----------------------------------------------------------
  86. _Exit:
  87.    
  88.     rts
  89.  
  90.  
  91.  
  92. ;-----------------------------------------------------------
  93. ; Invocado por la interrupcion vblank. Se invoca 50 veces
  94. ; por segundo.
  95. ;-----------------------------------------------------------
  96. _Interrupt:
  97.  
  98.     rts
  99.  
  100. _CopperInt:
  101.  
  102.     rts
  103.  
  104.     section datos,data_c
  105. grafico:
  106.     dc.w    %1111111111111111
  107.     dc.w    %1100000000000011
  108.     dc.w    %1010000000000101
  109.     dc.w    %1001000000001001
  110.     dc.w    %1000100000010001
  111.     dc.w    %1000010000100001
  112.     dc.w    %1000001001000001
  113.     dc.w    %1000000110000001
  114.     dc.w    %1000000110000001
  115.     dc.w    %1000001001000001
  116.     dc.w    %1000010000100001
  117.     dc.w    %1000100000010001
  118.     dc.w    %1001000000001001
  119.     dc.w    %1010000000000101
  120.     dc.w    %1100000000000011
  121.     dc.w    %1111111111111111
  122.  
  123. ;SECCIONES EN MEMORIA CHIP PARA BITPLANOS Y COPPERLIST
  124.  
  125.     section bitplanes,data_c
  126. screen:
  127.    ds.b    40*256      ;40 bytes por linea * 256 lineas
  128.     ;incbin "data/16colores.raw"
  129.    
  130.     section copperlist,data_c  
  131. ;------------------------------------------------------------------
  132. ;   MAIN COPPERLIST
  133. ;------------------------------------------------------------------
  134. copperlist:
  135.    DC.W    DiWStrt,$2C81,DiWStop,$2cC1,DdfStrt,$0038,DdfStop,$00D0
  136.     DC.W    BplCon0,$1200,BplCon3,$0000,AgaFMode,$0000
  137.     DC.W    BplCon1,$0000,BplCon2,$0000
  138.     DC.W    Bpl1Mod,$0000,Bpl2Mod,$0000
  139.  
  140.     ;LOS COLORES DE NUESTRA IMAGEN CONVERTIDOS CON PICCON O ARTPRO
  141.     dc.w    $0180,$0000,$0182,$0fff     ;,$0184,$0FFF,$0186,$0888
  142.     ;dc.w   $0188,$0A20,$018A,$0D50,$018C,$0EB0,$018E,$0080
  143.     ;dc.w   $0190,$06B0,$0192,$0170,$0194,$05BC,$0196,$0367
  144.     ;dc.w   $0198,$007B,$019A,$0048,$019C,$0E88,$019E,$0B55
  145.  
  146. Planes:
  147.    DC.W    Bpl1Pth,$0000,Bpl1Ptl,$0000     ;punteros del Bitplano 1
  148.     ;DC.W    Bpl2Pth,$0000,Bpl2Ptl,$0000     ;punteros del Bitplano 2
  149.     ;DC.W    Bpl3Pth,$0000,Bpl3Ptl,$0000     ;punteros del Bitplano 3
  150.     ;DC.W    Bpl4Pth,$0000,Bpl4Ptl,$0000     ;punteros del Bitplano 4
  151.  
  152.     dc.w    $ffff,$fffe         ;Fin de la copperlist
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement