

;	*****************************************************************
;	*								*
;	*	100% Code zostal napisany przez MR.PET z SIDON !!	*
;	*	     Dystrybucja programu jest dozwolona ! 		*
;	*								*
;	*	          Data produkji : 16-09-1990			*
;	*								*
;	*****************************************************************


	SECTION DATA,DATA_C		; Dane w CHIP-Pamieci
	EVEN				; ze wzgledu na Sprity

START:
	MOVE.W	#$4000,$DFF09A		; Wylaczenie Multitasking
	MOVE.L	#NOWYCOPPER,$DFF084	; Adres nowej Copper-tablicy
	MOVE.W	#%1000001111100000,$DFF096 ; DMA-Wlaczenie

	MOVE.L	#OBRAZ,d0		; Inicjalizacja tablicy obrazu
	MOVE.W	d0,LOBPL1
	SWAP	d0
	MOVE.W	d0,HIBPL1

	MOVE.L	#SPRITE,d0		; Inicjalizacja tablicy Spritow
	MOVE.W	d0,LOSPRITE
	SWAP	d0
	MOVE.W	d0,HISPRITE

PETLA:					; Glowna petla
	BSR	CZEKAJ		
	BSR	GWIAZDY
	BTST.B	#6,$BFE001		; Mysz nacisnieta ?
	BNE	PETLA			; Nie, to od poczatku
					; jezeli tak to dalej ...
CZEKAJ:
	CMP.B	#$FF,$DFF006		; Czekanie na zakonczenie ryso-
	BNE	CZEKAJ			; wania ekranu
	RTS				; POWROT lub KONIEC

GWIAZDY:			
	LEA     SPRITE,A0		; Adres tablicy Spritow na A0
	LEA     GWIAZDY_X_POS,A1	; Adres X-POS Spritow na A1
	LEA     GWIAZDY_SPEED,A2	; Szybkosc Spr. na A2
	MOVEQ   #119,D7			; Liczba Spritow -1
	MOVEQ   #40,D6			; Start Pozycji X 
	MOVEQ   #0,D4			; Wyglad Spritow NR.0
LOOP_SPRITES:				; Wyliczanie pozycji X i "Y"
	MOVEQ   #0,D0			; dla kazdego ze Spritow
	MOVE.B  D6,D0
	MOVE.B  D0,D1
	ADDQ.B  #1,D1
	ROL.W   #8,D0
	MOVE.B  (A1),D0
	ROL.L   #8,D0
	MOVE.B  D1,D0
	ROL.L   #8,D0
	MOVE.L  D0,(A0)+
	TST.B   D4
	BNE.S   NO_COLOR_0		; Color gwiazd to tylko
	MOVE.L  #$00010000,(A0)+	; zmiana wygladu Spritow
NO_COLOR_0:				; 3 rozne do wyboru
	CMP.B   #1,D4
	BNE.S   NO_COLOR_1
	MOVE.L  #$000c0002,(A0)+
NO_COLOR_1:
	CMP.B   #2,D4
	BNE.S   NO_COLOR_2
	MOVE.L  #$0033000f,(A0)+
NO_COLOR_2:
	ADDQ.B  #1,D4			; Wyglad Spr. +1
	CMP.B   #3,D4			; jezeli >3 to znowu 0
	BNE.S   NO_COLOR_00
	CLR.W   D4
NO_COLOR_00:
	MOVE.B  (A2)+,D5		; Szybkosc w D5
	ADD.B   D5,(A1)+
	ADDQ.B  #2,D6
	DBRA    D7,LOOP_SPRITES		; Nastepny Sprite
	CLR.L   (A0)+			; Ostatnie 2-slowa musza byc 0 !
	RTS

*************************** X - Pozycje Spritow *****************************

GWIAZDY_X_POS:	DC.B 000,090,134,231,178,173,156,010,093,234
 		DC.B 020,190,234,131,078,240,250,230,133,134
		DC.B 057,140,164,031,238,176,126,102,253,034
		DC.B 235,180,248,221,128,064,216,110,233,240
		DC.B 176,230,234,001,168,154,056,210,139,140
		DC.B 134,135,023,012,088,099,065,174,146,005
		DC.B 210,245,034,252,218,077,186,085,097,205
		DC.B 134,023,104,025,123,044,206,033,023,197
		DC.B 138,068,194,121,093,034,083,093,002,137
		DC.B 100,147,227,000,056,134,096,171,087,185
		DC.B 134,023,104,025,123,044,206,033,023,197
		DC.B 176,230,234,001,168,154,056,210,139,140
		EVEN

**************************** Szybkosc Spritow ******************************

GWIAZDY_SPEED:	DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		DC.B 1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3
		EVEN

SPRITE:		DS.W  120*8+2		; 120 Spritow + 2 koncowe slowa

NOWYCOPPER:				; Nowa Copper-tablica
 
	DC.W    $008e,$3081,$0090,$30c1 ; Cechy Grafiki
	DC.W	$0092,$0038,$0094,$00d0 ; -----"------
	DC.W	$0100,%0001001000000000	; 1 tabela graficzne ( BITPLANE )          

COLOR:	DC.W	$0180,$0000 		; Colory obrazu
	DC.W	$0182,$0FFF

	DC.W	$01A2,$0668		; Colory Spritow
	DC.W	$01A4,$099B
	DC.W	$01A6,$0BBF

        DC.W	$00e0			; Adres tablicy ekrany 
HIBPL1:	DC.W	$0000			; do rejestrow
	DC.W	$00e2
LOBPL1:	DC.W	$0000        

	DC.W	$0120			; Adres tablicy Spritow
HISPRITE:	DC.W	0		; do rejestrow
	DC.W	$0122
LOSPRITE:	DC.W	0

	DC.W	$0124,0			; Inne Sprity wylaczyc
	DC.W	$0126,0
	DC.W	$0128,0
	DC.W	$012A,0
	DC.W	$012C,0
	DC.W	$012E,0
	DC.W	$0130,0
	DC.W	$0132,0
	DC.W	$0134,0
	DC.W	$0136,0
	DC.W	$0138,0
	DC.W	$013A,0
	DC.W	$013C,0
	DC.W	$013E,0

	DC.W	$FFFF,$FFFE		; Czekanie na koniec

OBRAZ:	DCB.B	10240,0			; Tablica obrazu ( BITPLANE )


