SPRITEVAR:
	JSR		ROTERA_SPRITES
	JSR		G™R_MASK
	LEA		SUDD_TAB,A2
	JSR		SPRITE
	LEA		SUDD_TAB2,A2
	JSR		SPRITE
	LEA		SUDD_TAB3,A2
	JSR		SPRITE
	LEA		SUDD_TAB4,A2
	JSR		SPRITE
	LEA		SUDD_TAB5,A2
	JSR		SPRITE

	lea		ScrollYTab2+240,a0
	move.l	a0,ScrollYPtr
	lea		ScrollYTab2+220,a0
	move.l	a0,ScrollYPtr2
	lea		ScrollYTab2+200,a0
	move.l	a0,ScrollYPtr3
	lea		ScrollYTab2+180,a0
	move.l	a0,ScrollYPtr4
	lea		ScrollYTab2+160,a0
	move.l	a0,ScrollYPtr5
*************************************
	lea		ScrollYTab+140,a0
	move.l	a0,ScrollXPtr
	lea		ScrollYTab+120,a0
	move.l	a0,ScrollXPtr2
	lea		ScrollYTab+100,a0
	move.l	a0,ScrollXPtr3
	lea		ScrollYTab+80,a0
	move.l	a0,ScrollXPtr4
	lea		ScrollYTab+60,a0
	move.l	a0,ScrollXPtr5
	RTS
PUTSPRITES:
	LEA		SUDD_TAB5,A2
	BSR		SUDD
	LEA		SUDD_TAB4,A2
	BSR		SUDD
	LEA		SUDD_TAB3,A2
	BSR		SUDD
	LEA		SUDD_TAB2,A2
	BSR		SUDD
	LEA		SUDD_TAB,A2
	BSR		SUDD

	jsr		Xmove
	jsr		Xmove
	SUBQ.W	#7,D0
	MOVE.W	D0,X_COR
	jsr		Ymove
*	jsr		Ymove
*	jsr		Ymove
*	jsr		Ymove
	SUB.W	#42,D0
	MOVE.W	D0,Y_COR
	LEA		SUDD_TAB,A2
	BSR		SPRITE

	jsr		Xmove2
	jsr		Xmove2
	SUBQ.W	#7,D0
	MOVE.W	D0,X_COR
	jsr		Ymove2
*	jsr		Ymove2
*       	jsr		Ymove2
*	jsr		Ymove2
	SUB.W	#42,D0
	MOVE.W	D0,Y_COR
	LEA		SUDD_TAB2,A2
	BSR		SPRITE

	jsr		Xmove3
	jsr		Xmove3
	SUBQ.W	#7,D0
	MOVE.W	D0,X_COR
	jsr		Ymove3
*	jsr		Ymove3
*	jsr		Ymove3
*	jsr		Ymove3
	SUB.W	#42,D0
	MOVE.W	D0,Y_COR
	LEA		SUDD_TAB3,A2
	BSR		SPRITE

	jsr		Xmove4
	jsr		Xmove4
	SUBQ.W	#7,D0
	MOVE.W	D0,X_COR
	jsr		Ymove4
*	jsr		Ymove4
*	jsr		Ymove4
*	jsr		Ymove4
	SUB.W	#42,D0
	MOVE.W	D0,Y_COR
	LEA		SUDD_TAB4,A2
	BSR		SPRITE

	jsr		Xmove5
	jsr		Xmove5
	SUBQ.W	#7,D0
	MOVE.W	D0,X_COR
	jsr		Ymove5
*	jsr		Ymove5
*	jsr		Ymove5
*	jsr		Ymove5
	SUB.W	#42,D0
	MOVE.W	D0,Y_COR
	LEA		SUDD_TAB5,A2
	BSR		SPRITE
	RTS
Ymove:		
     move.l ScrollYPtr,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab2,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollYPtr

	RTS
Ymove2:		
     move.l ScrollYPtr2,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab2,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollYPtr2

	RTS
Ymove3:		
     move.l ScrollYPtr3,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab2,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollYPtr3

	RTS
Ymove4:		
     move.l ScrollYPtr4,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab2,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollYPtr4

	RTS
Ymove5:		
     move.l ScrollYPtr5,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab2,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollYPtr5

	RTS
Xmove:		
     move.l ScrollXPtr,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollXPtr
*	SUB.W	#210,D0
	RTS
Xmove2:		
     move.l ScrollXPtr2,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollXPtr2
*	SUB.W	#210,D0
	RTS
Xmove3:		
     move.l ScrollXPtr3,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollXPtr3
*	SUB.W	#210,D0
	RTS
Xmove4:		
     move.l ScrollXPtr4,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollXPtr4
*	SUB.W	#210,D0
	RTS
Xmove5:		
     move.l ScrollXPtr5,a0
     clr.l d0	
     move.w (a0)+,d0
     cmp.w #-1,d0
     bne .NotRestartYTab
         lea ScrollYTab,a0
         move.w (a0)+,d0
    .NotRestartYTab:   
     move.l a0,ScrollXPtr5
*	SUB.W	#210,D0
	RTS
SPRITE:
	MOVE.L	#$30000,A0
	MOVE.W	Y_COR,D0
	MULS	#160,D0
	ADD.L	D0,A0
	MOVE.W	X_COR,D0
	MOVE.W	D0,D1
	AND.W	#$FFF0,D0
	DIVU.W	#2,D0
	ADD.W	D0,A0
	LEA	SPR_BUF,A1
	AND.W	#$000F,D1
	MULS	#384,D1
	ADD.L	D1,A1
*	LEA	SUDD_TAB,A2
	MOVE.L	A0,(A2)+
	MOVE.W	#16-1,D7
SKRIV_LOOP:
	MOVE.L	0(A0),(A2)+
	MOVE.L	4(A0),(A2)+
	MOVE.L	8(A0),(A2)+
	MOVE.L	12(A0),(A2)+
	
	MOVEM.L	(A1)+,D0-D5
	AND.L	D4,0(A0)
	AND.L	D4,4(A0)
	AND.L	D5,8(A0)
	AND.L	D5,12(A0)
	OR.L	D0,(A0)
	OR.L	D1,4(A0)
	OR.L	D2,8(A0)
	OR.L	D3,12(A0)
	ADD.L	#160,A0
	
	DBRA	D7,SKRIV_LOOP
	RTS
SUDD:
	MOVE.L	(A2)+,A0
	MOVE.W	#16-1,D7
SUDD_LOOP:
	MOVE.L	(A2)+,0(A0)
	MOVE.L	(A2)+,4(A0)
	MOVE.L	(A2)+,8(A0)
	MOVE.L	(A2)+,12(A0)
	ADD.L	#160,A0
	DBRA	D7,SUDD_LOOP
	RTS
ROTERA_SPRITES:
	LEA		SPRITES,A0
	LEA		SPR_BUF,A1
	LEA		SPR_BUF+384,A2
	MOVE.W	#16-1,D6
COPY_LOOP1:
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	MOVE.L	#0,(A1)+
	MOVE.L	#0,(A1)+
	MOVE.L	#0,(A1)+
	MOVE.L	#0,(A1)+
	DBRA	D6,COPY_LOOP1

	MOVE.W	#15-1,D7
ROTERA_LOOP:
	BSR	COPY_SPRITES
	BSR	ROTERING
	DBRA	D7,ROTERA_LOOP
	RTS
COPY_SPRITES:
	MOVE.W	#16-1,D6
COPY_LOOP2:
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	MOVE.L	(A0)+,(A1)+
	DBRA	D6,COPY_LOOP2
	RTS
ROTERING:
	MOVE.W	#16-1,D6
ROXR_LOOP:
*	AND.W	#$FF00,SR
	ROXR.W	(A2)
	ROXR.W	8(A2)
*	AND.W	#$FF00,SR
	ROXR.W	2(A2)
	ROXR.W	10(A2)
*	AND.W	#$FF00,SR
	ROXR.W	4(A2)
	ROXR.W	12(A2)
*	AND.W	#$FF00,SR
	ROXR.W	6(A2)
	ROXR.W	14(A2)
	ADD.L	#24,A2
	DBRA	D6,ROXR_LOOP
	RTS
G™R_MASK:
	LEA	SPR_BUF,A0
	MOVE.W	#16*16-1,D7
MASK_LOOP:
	MOVE.W	(A0)+,D0
	OR.W	(A0)+,D0			
	OR.W	(A0)+,D0			
	OR.W	(A0)+,D0			
	NOT.W	D0
	MOVE.W	(A0)+,D1
	OR.W	(A0)+,D1
	OR.W	(A0)+,D1
	OR.W	(A0)+,D1
	NOT.W	D1
	MOVE.W	D0,(A0)+
	MOVE.W	D0,(A0)+
	MOVE.W	D1,(A0)+
	MOVE.W	D1,(A0)+
	DBRA	D7,MASK_LOOP
	RTS
X_COR:	DC.W	0
Y_COR:	DC.W	0
SPRITES:
		dc.w	$0000,$0000,$0000,$0000,$0240,$0780,$07C0,$07C0
		dc.w	$1820,$1800,$1830,$1AB0,$2100,$2300,$2308,$3758
		dc.w	$2008,$2000,$2408,$2EA8,$4004,$4800,$4804,$5D54
		dc.w	$4800,$4804,$4804,$6AAC,$4000,$4004,$4004,$5554
		dc.w	$0004,$4004,$4004,$6AAC,$0000,$6004,$6004,$7554
		dc.w	$2008,$0008,$2008,$2AA8,$1008,$0008,$3008,$3558
		dc.w	$0830,$0430,$1C30,$1EB0,$01C0,$07C0,$07C0,$07C0
		dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
	EVEN
SPR_BUF:	DS.B	24*16*16
SUDD_TAB:	DS.B	4+256
SUDD_TAB2:	DS.B	4+256
SUDD_TAB3:	DS.B	4+256
SUDD_TAB4:	DS.B	4+256
SUDD_TAB5:	DS.B	4+256
	EVEN
ScrollYPtr:	ds.l	1
ScrollYPtr2:	ds.l	1
ScrollYPtr3:	ds.l	1
ScrollYPtr4:	ds.l	1
ScrollYPtr5:	ds.l	1
ScrollXPtr:	ds.l	1
ScrollXPtr2:	ds.l	1
ScrollXPtr3:	ds.l	1
ScrollXPtr4:	ds.l	1
ScrollXPtr5:	ds.l	1


