EXECBASE:	EQU 		4
DMACON:		EQU 		$DFF096
OLDO:		EQU 		-408



start: 		MOVE.L 		EXECBASE,A6
		LEA 		GFXNAME,A1
		MOVE.L 		#0,D0
		JSR		OLDO(A6)
		TST.W		D0
		BEQ		ERRL
		MOVE.L		D0,GFXBASE
		MOVE.L		D0,A0
		ADD.L		#$32,A0
		MOVE.W		#$80,DMACON
		MOVE.L		(A0),OLDC
		MOVE.L		#SPRITE,D0
		MOVE.W		D0,SLO
		SWAP 		D0
		MOVE.W		D0,SHI
		MOVE.L		#NEWC,(A0)		
		LEA		SPRITE,A1
		LEA		XPOS,A2
		MOVE.L		#$2B,D0
		MOVE.L		#99,D1
SLOOP:		MOVE.B		D0,(A1)+
		ADDQ.W		#1,D0
		MOVE.B		(A2)+,(A1)+
		MOVE.B		D0,(A1)+
		ADDQ.W		#1,D0
		MOVE.B		#0,(A1)+
		MOVE.W		#1,(A1)+
		MOVE.W		#1,(A1)+
		DBRA		D1,SLOOP
		MOVE.L		#0,A1
		
;		MOVE.L		$6C,STORE
;		LEA		INTER,A1
;		MOVE.L		A1,$6C
;		MOVE.W		#$8020,$DFF09A
		MOVE.W		#$8080,$DFF096
WAIT:		BSR		INTER
		MOVE.L		#$2E00,D0
STOP:		DBRA		D0,STOP
		ANDI.B		#$40,$BFE001  ;MOUSE ADDR
		BNE		WAIT
		MOVE.L		GFXBASE,A0
		ADD.L		#$32,A0
		MOVE.W		#$80,DMACON
		MOVE.L		OLDC,(A0)
		MOVE.W		#$8080,DMACON
		RTS
;		INTERRUPT ROUTINE

INTER:		LEA		SPRITE,A0
		LEA		SPEED,A1
		MOVE.L		#99,D0
ILOOP:		MOVE.B		(A1)+,D1
		ADD.B		D1,1(A0)
		CMPI.B		#99,(A1)
		BNE		FOR
		LEA		SPEED,A1
FOR:		ADDQ.L		#8,A0
		DBRA		D0,ILOOP	
		RTS	
								
ERRL:		RTS

GFXNAME:	DC.B 'graphics.library',0
		EVEN

GFXBASE:	DC.L 0

OLDC:		DC.L 0

STORE:		DC.L 0,0

SPEED:		DC.B 1,2,3,4,-4,-3,-2,-1,99
		EVEN

NEWC:		DC.W $0100,$1200
		DC.W $00E0,$0005,$00E2,$0000
		DC.W $0180,$0000,$01A6,$0FFF
		DC.W $0120
SHI:		DC.W $0000
		DC.W $0122
SLO:		DC.W $0000		
		DC.W $FFFF,$FFFE


XPOS:		DC.B 65,128,205,195,84,130,176,201,75,99,197,154,109
		DC.B 126,73,192,171,105,104,202,83,61,69,77,159,162
		DC.B 120,111,210,60,97,143,192,171,207,92,83,77,98
		DC.B 101,115,121,141,133,75,149,162,192,117,105,73
		
		DC.B 47,158,99,127,121,137,36,95,107,209,178,210,117
		DC.B 37,61,111,196,156,35,37,91,121,36,66,88,59,113
		DC.B 11,9,23,100,140,39,44,166,188,192,36,49,202,39
		DC.B 94,141,144,143,211,230,99,100	
		EVEN
SPRITE: 	BLK.W	4*50,0


