BTF5_Bitplane_Width  = 40
BTF5_Bitplane_Height = 256
BTF5_NumPlanosImagen = 5

CSA_Speed = 1 			;Debe ser potencia de 2: 1,2,4,8,16.
CSA_Font_AnchuraLetras   = 4	;En bytes, 32 pixels
CSA_Font_AlturaLetras    = 66    ;En pixels

CSA_Font_NumPlanes 	 = 5
CSA_Font_AnchoBitmap = 28	;En bytes

CSA_PosicionScroll  = 67
CSA_MargenDerecho = 4	;bytes?
CSA_PosImpresion = 40		;46

BTF5_PosicionYDelorien = 30

gblClearMemory2 MACRO  @Direccion,Tamaño_Ventana,Modulo
	gblWaitBlitter 
	move.l	#-1,BltAFwm+CustomBase
	move.w	\3,BltDMod+CustomBase
	move.l	#$01000000,BltCon0+CustomBase
	move.l	\1,BltDPth+CustomBase
	move.w	\2,BltSize+CustomBase
	ENDM


BTF5_Init:

	gblClearMemory2  #buffer_general_1,#256*3<<6+(BTF5_Bitplane_Width/2),#0
	gblClearMemory2  #buffer_general_12,#256*2<<6+(BTF5_Bitplane_Width/2),#0

	lea 	BTF5_Imagen_stc,a1
	lea 	buffer_general_1,a0
	jsr 	decrunch

	lea 	BTF5_Imagen_stc,a1
	lea 	buffer_general_2,a0
	jsr 	decrunch

	lea.l	buffer_general_1,a1
	lea.l	BTF5_Copper_Bitplanes+2,a2
	move.l	a1,d1

	REPEAT 	d0,BTF5_NumPlanosImagen TIMES
		swap	d1
		move.w	d1,(a2)
		swap	d1
		move.w	d1,4(a2)
		addq.l	#8,a2
		add.l	#BTF5_Bitplane_Width+CSA_MargenDerecho,d1
	END_REPEAT

	lea.l	BTF5_CopperList,a1
	move.l	a1,Cop1Lch+CustomBase

	clr.w 	CopJmp1+CustomBase

	rts	;
;--------------------------------------------------------------
; Invocada en cada VBG
;--------------------------------------------------------------
BTF5_Run:
	tst.w 	BTF_Animacion_Delorian_Delay
	beq 	.ImprimeBob
	sub.w 	#1,BTF_Animacion_Delorian_Delay
	rts

.ImprimeBob
	move.l 	BTF_Animacion_Delorian_Posicion,a4
	jif.l 	#-1,'<>',(a4),.nofin				;Se ha terminado el fake-scroll?
	move.l 	#-1,ParteDemo
	rts

.nofin:
  	clear d4
	move.l 	(a4)+,d0 		;x
	move.l 	(a4)+,d1 		;IncY (Lo que hay que saltar para imprimir en la coordenada Y)
	move.l 	(a4)+,d2 		;Tiempo
	move.l 	(a4)+,d3 		;NumBobs,Bob-Inicial

	move.l 	a4,BTF_Animacion_Delorian_Posicion
	move.w 	d2,BTF_Animacion_Delorian_Delay
	move.w  d3,d4       ;    d4=inicial
	swap   d3
	and.l   #$0000ffff,d3 ;d3 Num-bobs
	move.l  d3,d2
	add.w   #(CSA_Font_AlturaLetras*CSA_Font_NumPlanes)<<6,d2

	lea 	buffer_general_1,a1 	;Pantalla
	add.l 	d1,a1 			;Incremento debido a coordenada Y
	lsr.l 	#3,d0 			;Incremento debido a coordenad X
	add.l 	d0,a1 			;Destino D

	lea 	buffer_general_2,a4 	;Pantalla
	add.l 	d1,a4 			;Incremento debido a coordenada Y
	;lsr.l 	#3,d0 			;Incremento debido a coordenad X
	add.l 	d0,a4 			;Destino D

	;move.l 	a4,a1 			;Source C

	;----------------------------------------------
	; Origen y Mascara
	;----------------------------------------------
	lea 	BTF5_Delorian,a0
	add.w d4,d4             ;d4*2
	add.l d4,a0
	lea 	BTF5_Delorian_Mask,a3
	add.l d4,a3

	move.w 	#$0fca,BltCon0+CustomBase
	move.w	#$0000,BltCon1+CustomBase 		

	gblWaitBlitter

	move.l 	a3,BltAPtH+CustomBase 		;Mascara
	move.l 	a0,BltBPtH+CustomBase	  	;Bob
	move.l 	a4,BltCpth+CustomBase 		;Fondo (copiado)
	move.l 	a1,BltDpth+CustomBase 		;Destino

	move.l	#$ffffffff,Bltafwm+CustomBase

	add.l d3,d3         ;Si hacemos una tabla con los valores comprobamos que
                      ; modC = modD y modA = modB  y modC = 16+modA
  
  	clear 	d4
  	move.w #CSA_Font_AnchoBitmap,d4
  ;sub.w #CSA_Font_AnchoBitmap,d3
  	sub.w 	d3,d4

	move.w	d4,BltAMod+CustomBase
	move.w	d4,BltBMod+CustomBase
  	add.w 	#16,d4
	move.w	d4,BltCMod+CustomBase	
	move.w	d4,BltDMod+CustomBase	

	move.w	d2,BltSize+CustomBase

.fin
	rts

BTF5_Animacion_Delorian:
; --------------------------------------------------------------------------------------------------
; Animacion de Equalizador
; --------------------------------------------------------------------------------------------------
BTF_Animacion_Delorian_Delay: 
	dc.w 0
BTF_Animacion_Delorian_Posicion: 
	dc.l BTF5_StoryBoard_Delorian

BTF5_StoryBoard_Delorian: ; X,Y,Tiempo de visualizacion,NumBobs-Inicial
	dc.l 	320-16*01,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00010000 ;1
	dc.l 	320-16*02,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00020000
	dc.l 	320-16*03,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00030000
	dc.l 	320-16*04,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00040000
	dc.l 	320-16*05,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00050000
	dc.l 	320-16*06,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00060000
	dc.l 	320-16*07,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00070000
	dc.l 	320-16*08,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00080000
	dc.l 	320-16*09,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$00090000
	dc.l 	320-16*10,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000A0000
	dc.l 	320-16*11,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000B0000
	dc.l 	320-16*12,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000C0000
	dc.l 	320-16*13,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000D0000
	dc.l 	320-16*14,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000E0000
	dc.l 	320-16*15,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,1,$000E0000

	dc.l 	320-16*16,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000E0000 ;0
	dc.l 	320-16*17,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000E0000
	dc.l 	320-16*18,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000E0000
	dc.l 	320-16*19,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000E0000
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000E0000
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000D0001
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000C0002
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000B0003
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$000A0004
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$00090005
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$00080006
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$00070007
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$00060008
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$00050009
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$0004000A
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$0003000B
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$0002000C
	dc.l 	320-16*20,BTF5_PosicionYDelorien*(BTF5_Bitplane_Width+CSA_MargenDerecho)*BTF5_NumPlanosImagen,0,$0001000D

	dc.l 	-1

	even
