
; Sprite Example 15:		Animating Large 16 Colour Sprites

;				Sprites 0 & 1 are placed at same position
;				Attach bit is set for Sprite 1

;				Sprites 2 & 3 are placed at same position,
;				  16 pixels to right of Sprites 0 & 1
;				Attach bit is set for Sprite 3

		include		hardware.i
		include		HW_Macros.i
		include		HW_Start.i
		include		HW_Sprites.i

; Define limits on movement

MIN_X		=		128
MAX_X		=		128+320-16
MIN_Y		=		44
MAX_Y		=		44+256-20

; Define extension to sprite structure

spr_dX		=		spr_Ext
spr_dY		=		spr_dX+2

; Stuff bitplane pointers into Copper list using a macro

Main		COPBPL		CopPlanes,bitplane,(320/8)*256,1

; Call routine that sets all sprite pointers to a blank sprite

		lea		SprtBase,a0
		bsr		SpritesOff

; Position Sprite 1

		lea		Sprite1,a0
		bsr		SetSprPos

; Must position Sprite 2 at same address and set attach bit. Since sprites
;are animated, we must obtain pointer to hardware sprite from Sprite struct

		lea		Sprite1,a0		a0->Sprite
		move.l		spr_Data(a0),a0		a0->hardware sprite
		move.l		(a0),d0			sprite control words
		bset.l		#7,d0			set attach bits
		lea		Sprite2,a0
		move.l		spr_Data(a0),a0
		move.l		d0,(a0)			copy to ODD sprite

; Position Sprite 3

		lea		Sprite3,a0
		bsr		SetSprPos

; Must position Sprite 4 at same address and set attach bit. Since sprites
;are animated, we must obtain pointer to hardware sprite from Sprite struct

		lea		Sprite3,a0		a0->Sprite
		move.l		spr_Data(a0),a0		a0->hardware sprite
		move.l		(a0),d0			sprite control words
		bset.l		#7,d0			set attach bits
		lea		Sprite4,a0
		move.l		spr_Data(a0),a0
		move.l		d0,(a0)			copy to ODD sprite

; Set sprite pointer 0 in copper list. Not that by omitting 3rd parameter,
;macro will assume SprtBase!

		SPRITEON	#0,#Sprite1		Turn sprites on
		SPRITEON	#1,#Sprite2
		SPRITEON	#2,#Sprite3
		SPRITEON	#3,#Sprite4

; Enable bitplane, Copper and sprite DMA.

		move.w		#SETIT!DMAEN!COPEN!BPLEN!SPREN,DMACON(a5)

; Install vert blank interrupt handler and enable it

		move.l		#Level3,$6c
		move.w		#SETIT!INTEN!VERTB,INTENA(a5)

; Now strobe the Copper list.

		move.l		#CopperList,COP1LCH(a5)	address of list
		move.w		#0,COPJMP1(a5)		strobe Copper

; Wait for user to press the left mouse button

mouse		btst		#6,CIAAPRA
		bne.s		mouse

; And exit.

		rts

;		***************************
;		*   Vert Blank Interrupt  *
;		***************************

Level3		lea		$dff000,a5		a5->hardware base

; Position Sprite 1

		lea		Sprite1,a0
		bsr		SetSprPos

; Must position Sprite 2 at same address and set attach bit. Since sprites
;are animated, we must obtain pointer to hardware sprite from Sprite struct

		lea		Sprite1,a0		a0->Sprite
		move.l		spr_Data(a0),a0		a0->hardware sprite
		move.l		(a0),d0			sprite control words
		bset.l		#7,d0			set attach bits
		lea		Sprite2,a0
		move.l		spr_Data(a0),a0
		move.l		d0,(a0)			copy to ODD sprite

; Position Sprite 3

		lea		Sprite3,a0
		lea		Sprite1,a1
		
		move.w		spr_X(a1),d0
		add.w		#16,d0
		move.w		d0,spr_X(a0)
		move.w		spr_Y(a1),spr_Y(a0)

		bsr		SetSprPos

; Must position Sprite 4 at same address and set attach bit. Since sprites
;are animated, we must obtain pointer to hardware sprite from Sprite struct

		lea		Sprite3,a0		a0->Sprite
		move.l		spr_Data(a0),a0		a0->hardware sprite
		move.l		(a0),d0			sprite control words
		bset.l		#7,d0			set attach bits
		lea		Sprite4,a0
		move.l		spr_Data(a0),a0
		move.l		d0,(a0)			copy to ODD sprite

; Turn Sprites on

		SPRITEON	#0,#Sprite1		Turn sprites on
		SPRITEON	#1,#Sprite2
		SPRITEON	#2,#Sprite3
		SPRITEON	#3,#Sprite4

; Animate the sprite

		ANIMATESPRITE	#Sprite1
		ANIMATESPRITE	#Sprite2
		ANIMATESPRITE	#Sprite3
		ANIMATESPRITE	#Sprite4

; Move Sprite 1

		lea		Sprite1,a0
		move.w		spr_X(a0),d0
		add.w		spr_dX(a0),d0
		move.w		d0,spr_X(a0)
		cmp.w		#448,d0
		blt.s		NoWrap
		move.w		100,spr_X(a0)

; Clear the interrupt request

NoWrap		move.w		INTREQR(a5),d0		get bits
		and.w		#VERTB!COPER!BLIT,d0	mask level 3 bits
		move.w		d0,INTREQ(a5)		clear request
		
		rte					back to user mode

;		***************************
;		*    Blank All Sprites	  *
;		***************************

; Entry		a0->SprBase for relevant Copper list

SpritesOff	move.l		#BlankSprite,d0		blank sprite
		moveq.l		#7,d1			sprite counter

_sprLoop	swap		d0			get high part of addr
		move.w		d0,2(a0)		into Copper list
		swap		d0			get low part of addr
		move.w		d0,6(a0)		into Copper list
		addq.l		#8,a0			bump Copper list ptr
		dbra		d1,_sprLoop
		
		rts

;		***************************
;		*	   Data    	  *
;		***************************

ColFlag		dc.w		0

Sprite1		dc.w		130		X
		dc.w		125		Y
		dc.w		35		height
		dc.l		sprite1aData	address of initial data
		dc.l		Sprite1Anim	->Anim structure
		dc.w		0		current frame number
		dc.w		1		initial timer value
		dc.w		3		dX -- our extension
		dc.w		1		dY -- our extension

Sprite1Anim	dc.w		4		animate after 4 VBLs
		dc.w		4		4 frames
		dc.l		sprite1aData	address of 1st frame
		dc.l		sprite1bData	address of 2nd frame
		dc.l		sprite1cData	address of 3rd frame
		dc.l		sprite1dData	address of 4th frame


Sprite2		dc.w		130		X
		dc.w		125		Y
		dc.w		35		height
		dc.l		sprite2aData	address of initial data
		dc.l		Sprite2Anim	->Anim structure
		dc.w		0		current frame number
		dc.w		1		initial timer value
		dc.w		3		dX -- our extension
		dc.w		1		dY -- our extension

Sprite2Anim	dc.w		4		animate after 4 VBLs
		dc.w		4		4 frames
		dc.l		sprite2aData	address of 1st frame
		dc.l		sprite2bData	address of 2nd frame
		dc.l		sprite2cData	address of 3rd frame
		dc.l		sprite2dData	address of 4th frame

Sprite3		dc.w		130+16		X
		dc.w		125		Y
		dc.w		35		height
		dc.l		sprite3aData	address of initial data
		dc.l		Sprite3Anim	->Anim structure
		dc.w		0		current frame number
		dc.w		1		initial timer value
		dc.w		3		dX -- our extension
		dc.w		1		dY -- our extension

Sprite3Anim	dc.w		4		animate after 4 VBLs
		dc.w		4		4 frames
		dc.l		sprite3aData	address of 1st frame
		dc.l		sprite3bData	address of 2nd frame
		dc.l		sprite3cData	address of 3rd frame
		dc.l		sprite3dData	address of 4th frame


Sprite4		dc.w		130+16		X
		dc.w		125		Y
		dc.w		35		height
		dc.l		sprite4aData	address of initial data
		dc.l		Sprite4Anim	->Anim structure
		dc.w		0		current frame number
		dc.w		1		initial timer value
		dc.w		3		dX -- our extension
		dc.w		1		dY -- our extension

Sprite4Anim	dc.w		4		animate after 4 VBLs
		dc.w		4		4 frames
		dc.l		sprite4aData	address of 1st frame
		dc.l		sprite4bData	address of 2nd frame
		dc.l		sprite4cData	address of 3rd frame
		dc.l		sprite4dData	address of 4th frame

;		***************************
;		*     CHIP Memory Data    *
;		***************************

section		data custom,chip		****  Use this for A68K  ****

;		Section		custom,data_C	**** Use this for Devpac ****

CopperList	CMOVE		COLOR00,$0000		Black background

		CWAIT		0,20			build in a pause!

SprtBase	CMOVE		SPR0PTH,0		Sprite defs
		CMOVE		SPR0PTL,0
		CMOVE		SPR1PTH,0
		CMOVE		SPR1PTL,0
		CMOVE		SPR2PTH,0
		CMOVE		SPR2PTL,0
		CMOVE		SPR3PTH,0
		CMOVE		SPR3PTL,0
		CMOVE		SPR4PTH,0
		CMOVE		SPR4PTL,0
		CMOVE		SPR5PTH,0
		CMOVE		SPR5PTL,0
		CMOVE		SPR6PTH,0
		CMOVE		SPR6PTL,0
		CMOVE		SPR7PTH,0
		CMOVE		SPR7PTL,0
		
		CMOVE		DIWSTRT,$2c81		PAL -- 256 lines
		CMOVE		DIWSTOP,$2cc1
		CMOVE		DDFSTRT,$0038		LoRes
		CMOVE		DDFSTOP,$00d0
		CMOVE		BPL1MOD,$0000		No modulos
		CMOVE		BPL2MOD,$0000
		CMOVE		BPLCON0,$1200		1 bitplane & colour
		CMOVE		BPLCON1,$0000		No scrolling
		CMOVE		BPLCON2,%0000000000001000		pf1=1
;                                                 P222111

CopPlanes	CMOVE		BPL1PTH,0		Bit plane pointer
		CMOVE		BPL1PTL,0

		CMOVE		COLOR00,$0000		black background
		CMOVE		COLOR01,$0fff		white foreground

		CMOVE		COLOR16,$0000
		CMOVE		COLOR17,$0333
		CMOVE		COLOR18,$0620
		CMOVE		COLOR19,$0444
		CMOVE		COLOR20,$0666
		CMOVE		COLOR21,$000f
		CMOVE		COLOR22,$007c
		CMOVE		COLOR23,$0080
		CMOVE		COLOR24,$00af
		CMOVE		COLOR25,$00dd
		CMOVE		COLOR26,$0e00
		CMOVE		COLOR27,$0d80
		CMOVE		COLOR28,$0888
		CMOVE		COLOR29,$0aaa
		CMOVE		COLOR30,$0ccc
		CMOVE		COLOR31,$0eee
		
		CEND					end of list

bitplane	ds.b		40*256

BlankSprite	dc.w		0,0		non-exsistent sprite!

; The following sprite data was generated using DumpSprite!

sprite1aData	

	dc.w	0,0
	dc.w	$0002,$0000,$0005,$0000,$0003,$0001,$0002,$0001
	dc.w	$0003,$0000,$0004,$0000,$0013,$0001,$0011,$0010
	dc.w	$0001,$0001,$0001,$0000,$0013,$0002,$0002,$0000
	dc.w	$0003,$0018,$000F,$0012,$0006,$0010,$000F,$0010
	dc.w	$0007,$0002,$0006,$0000,$0007,$0000,$0001,$0001
	dc.w	$0000,$0000,$0002,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0010,$0004,$0020,$0020,$0040,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite1bData

	dc.w	0,0
	dc.w	$0000,$0000,$0001,$0000,$0002,$0000,$0001,$0000
	dc.w	$0001,$0000,$0001,$0000,$0012,$0000,$0011,$0010
	dc.w	$0000,$0000,$0001,$0000,$0013,$0002,$0002,$0000
	dc.w	$0003,$0018,$000F,$0012,$0006,$0010,$000F,$0010
	dc.w	$0007,$0002,$0006,$0000,$0007,$0000,$0001,$0001
	dc.w	$0006,$0002,$0001,$0001,$0002,$0000,$0000,$0000
	dc.w	$0004,$0001,$0008,$0008,$0010,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite1cData

	dc.w	0,0
	dc.w	$0000,$0000,$0001,$0000,$0002,$0000,$0001,$0000
	dc.w	$0001,$0000,$0001,$0000,$0012,$0000,$0011,$0010
	dc.w	$0000,$0000,$0001,$0000,$0013,$0002,$0002,$0000
	dc.w	$0003,$0018,$000F,$0012,$0006,$0010,$000F,$0010
	dc.w	$0007,$0002,$0006,$0000,$0007,$0000,$0001,$0001
	dc.w	$0003,$0002,$0003,$0000,$0003,$0002,$0001,$0001
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0001,$0001,$0001,$0001,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite1dData

	dc.w	0,0
	dc.w	$0002,$0000,$0005,$0000,$0003,$0001,$0002,$0001
	dc.w	$0003,$0000,$0004,$0000,$0013,$0001,$0011,$0010
	dc.w	$0001,$0001,$0001,$0000,$0013,$0002,$0002,$0000
	dc.w	$0003,$0018,$000F,$0012,$0006,$0010,$000F,$0010
	dc.w	$0007,$0002,$0006,$0000,$0007,$0000,$0002,$0000
	dc.w	$0002,$0000,$0006,$0000,$0002,$0000,$0002,$0000
	dc.w	$0002,$0000,$0001,$0001,$0000,$0000,$0000,$0001
	dc.w	$0002,$0002,$0005,$0007,$0007,$0007,$0002,$0002
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0


sprite2aData	

	dc.w	0,0
	dc.w	$0001,$0001,$0003,$0003,$0007,$0007,$0007,$0007
	dc.w	$0007,$0003,$0003,$0000,$0000,$0000,$0000,$0000
	dc.w	$0011,$0001,$0018,$0010,$001F,$0013,$001F,$0002
	dc.w	$0004,$0018,$000B,$001B,$000B,$0012,$0000,$0010
	dc.w	$0003,$0003,$0003,$0002,$0000,$0000,$0006,$0000
	dc.w	$0003,$0000,$0004,$0000,$0007,$0000,$0003,$0000
	dc.w	$0002,$0000,$003A,$0014,$0372,$0020,$03E4,$0040
	dc.w	$0188,$0000,$00F0,$0000,$0060,$0000,$0030,$0000
	dc.w	$001E,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite2bData

	dc.w	0,0
	dc.w	$0000,$0000,$0000,$0000,$0001,$0001,$0003,$0003
	dc.w	$0003,$0003,$0003,$0001,$0001,$0000,$0000,$0000
	dc.w	$0010,$0000,$0018,$0010,$001F,$0013,$001F,$0002
	dc.w	$0004,$0018,$000B,$001B,$000B,$0012,$0000,$0010
	dc.w	$0003,$0003,$0003,$0002,$0000,$0000,$0002,$0000
	dc.w	$0000,$0000,$0002,$0000,$0001,$0000,$0000,$0000
	dc.w	$000E,$0005,$00DC,$0008,$00F9,$0010,$0062,$0000
	dc.w	$003C,$0000,$0018,$0000,$000C,$0000,$0007,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite2cData

	dc.w	0,0
	dc.w	$0000,$0000,$0000,$0000,$0001,$0001,$0003,$0003
	dc.w	$0003,$0003,$0003,$0001,$0001,$0000,$0000,$0000
	dc.w	$0010,$0000,$0018,$0010,$001F,$0013,$001F,$0002
	dc.w	$0004,$0018,$000B,$001B,$000B,$0012,$0000,$0010
	dc.w	$0003,$0003,$0003,$0002,$0000,$0000,$0002,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0001,$0000
	dc.w	$0000,$0000,$0003,$0000,$0003,$0000
	dc.l	0

sprite2dData

	dc.w	0,0
	dc.w	$0001,$0001,$0003,$0003,$0007,$0007,$0007,$0007
	dc.w	$0007,$0003,$0003,$0000,$0000,$0000,$0000,$0000
	dc.w	$0011,$0001,$0018,$0010,$001F,$0013,$001F,$0002
	dc.w	$0004,$0018,$000B,$001B,$000B,$0012,$0000,$0010
	dc.w	$0003,$0003,$0003,$0002,$0000,$0000,$0005,$0000
	dc.w	$0005,$0000,$0001,$0000,$0001,$0000,$0001,$0000
	dc.w	$0001,$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$0001,$0001,$0002,$0002,$0002,$0002,$0005,$0000
	dc.w	$0002,$0000,$000F,$0000,$000F,$0000
	dc.l	0


sprite3aData

	dc.w	0,0
	dc.w	$2000,$0000,$D000,$2000,$3000,$F000,$F000,$7000
	dc.w	$7000,$7000,$F000,$F000,$F000,$F000,$E800,$0000
	dc.w	$C000,$C000,$C000,$0000,$F000,$4000,$D000,$0000
	dc.w	$F000,$0000,$F000,$4000,$D000,$0000,$F000,$0000
	dc.w	$F000,$4000,$D000,$0000,$F000,$0000,$E000,$E000
	dc.w	$A000,$8000,$5000,$0000,$2800,$0000,$1400,$0000
	dc.w	$0A00,$0000,$0700,$0700,$0200,$0200,$0100,$0500
	dc.w	$0900,$0900,$1500,$1D00,$1D00,$1D00,$0900,$0900
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite3bData

	dc.w	0,0
	dc.w	$0000,$0000,$1000,$0000,$E800,$1000,$9800,$F800
	dc.w	$7800,$B800,$B800,$3800,$7800,$7800,$F800,$F800
	dc.w	$F400,$0000,$E000,$E000,$F000,$0000,$D000,$0000
	dc.w	$F000,$0000,$F000,$4000,$D000,$0000,$F000,$0000
	dc.w	$F000,$4000,$D000,$0000,$F000,$0000,$E000,$E000
	dc.w	$C000,$2000,$C000,$1000,$E000,$9000,$6000,$4800
	dc.w	$7000,$2800,$1C00,$0C00,$0800,$0800,$0400,$1400
	dc.w	$2400,$2400,$5400,$7400,$7400,$7400,$2400,$2400
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite3cData

	dc.w	0,0
	dc.w	$0000,$0000,$1000,$0000,$E800,$1000,$9800,$F800
	dc.w	$7800,$B800,$B800,$3800,$7800,$7800,$F800,$F800
	dc.w	$F400,$0000,$E000,$E000,$F000,$0000,$D000,$0000
	dc.w	$F000,$0000,$F000,$4000,$D000,$0000,$F000,$0000
	dc.w	$F000,$4000,$D000,$0000,$F000,$0000,$E000,$F000
	dc.w	$0000,$4800,$6000,$2400,$8200,$0200,$8100,$2500
	dc.w	$C900,$A900,$7500,$3D00,$3D00,$3D00,$1900,$5900
	dc.w	$9000,$9000,$5000,$D000,$D000,$D000,$9000,$9000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0

sprite3dData

	dc.w	0,0
	dc.w	$2000,$0000,$D000,$2000,$3000,$F000,$F000,$7000
	dc.w	$7000,$7000,$F000,$F000,$F000,$F000,$E800,$0000
	dc.w	$C000,$C000,$C000,$0000,$F000,$4000,$D000,$0000
	dc.w	$F000,$0000,$F000,$4000,$D000,$0000,$F000,$0000
	dc.w	$F000,$4000,$D000,$0000,$F000,$0000,$0000,$A000
	dc.w	$0000,$9000,$4000,$8800,$3000,$8400,$0800,$8600
	dc.w	$0000,$8000,$C000,$C200,$8000,$8000,$4200,$4000
	dc.w	$4100,$4100,$4080,$4000,$4000,$4000,$4000,$4000
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000
	dc.l	0


sprite4aData

	dc.w	0,0
	dc.w	$C000,$8000,$E000,$E000,$F000,$F000,$F800,$C000
	dc.w	$F800,$4000,$7800,$4000,$3800,$0000,$1000,$0000
	dc.w	$C000,$C000,$0000,$0000,$6000,$6000,$6000,$4000
	dc.w	$0000,$0000,$6000,$6000,$6000,$4000,$0000,$0000
	dc.w	$6000,$6000,$6000,$4000,$0000,$0000,$0000,$0000
	dc.w	$6000,$2000,$B000,$1000,$5800,$0800,$2C00,$0400
	dc.w	$0600,$0200,$0000,$0000,$0000,$0000,$0000,$0400
	dc.w	$0400,$0400,$0800,$0800,$0800,$0800,$1400,$0000
	dc.w	$0908,$0000,$3E10,$0000,$3FF0,$0000
	dc.l	0

sprite4bData

	dc.w	0,0
	dc.w	$0000,$0000,$E000,$C000,$F000,$F000,$F800,$F800
	dc.w	$FC00,$E000,$FC00,$A000,$BC00,$2000,$1C00,$0000
	dc.w	$0800,$0000,$E000,$E000,$0000,$0000,$6000,$4000
	dc.w	$0000,$0000,$6000,$6000,$6000,$4000,$0000,$0000
	dc.w	$6000,$6000,$6000,$4000,$0000,$0000,$1000,$0000
	dc.w	$2000,$2000,$3000,$1000,$1000,$1000,$9800,$0800
	dc.w	$8800,$0800,$8000,$0000,$0000,$0000,$0000,$1000
	dc.w	$1000,$1000,$2000,$2000,$2000,$2000,$5000,$0000
	dc.w	$2420,$0000,$F840,$0000,$FFC0,$0000
	dc.l	0

sprite4cData

	dc.w	0,0
	dc.w	$0000,$0000,$E000,$C000,$F000,$F000,$F800,$F800
	dc.w	$FC00,$E000,$FC00,$A000,$BC00,$2000,$1C00,$0000
	dc.w	$0800,$0000,$E000,$E000,$0000,$0000,$6000,$4000
	dc.w	$0000,$0000,$6000,$6000,$6000,$4000,$0000,$0000
	dc.w	$6000,$6000,$6000,$4000,$0000,$0000,$1000,$1000
	dc.w	$F800,$4800,$DC00,$4400,$6C00,$6000,$6000,$2400
	dc.w	$2400,$2400,$0800,$0800,$0800,$0800,$0400,$4000
	dc.w	$4108,$4000,$8610,$8000,$87F0,$8000,$4000,$0000
	dc.w	$9080,$0000,$E100,$0000,$FF00,$0000
	dc.l	0

sprite4dData

	dc.w	0,0
	dc.w	$C000,$8000,$E000,$E000,$F000,$F000,$F800,$C000
	dc.w	$F800,$4000,$7800,$4000,$3800,$0000,$1000,$0000
	dc.w	$C000,$C000,$0000,$0000,$6000,$6000,$6000,$4000
	dc.w	$0000,$0000,$6000,$6000,$6000,$4000,$0000,$0000
	dc.w	$6000,$6000,$6000,$4000,$0000,$0000,$E000,$A000
	dc.w	$F000,$9000,$B800,$8800,$8C00,$8400,$8600,$8600
	dc.w	$8304,$8000,$0084,$0200,$0244,$0000,$032C,$0200
	dc.w	$03B8,$0100,$01B0,$0080,$00E0,$0000,$01C0,$0000
	dc.w	$4380,$0000,$8400,$0000,$FC00,$0000
	dc.l	0



	end

		
