VblankWait:
 lda $2002
 bpl VblankWait
 rts

CZYSC_PPU:
 lda #$00
 sta $2005
 sta $2005

A0
 lda $2002
 bpl A0

  lda #%10000000
  sta $2000       ;Wyczy PPU
  sta $2001


           rts
PPU_ON:
A1
 lda $2002
 bpl A1

 lda #$23
 sta $2006
 lda #$A0
 sta $2006

 lda #$01
 sta $2007

 lda #$00
 sta $2006
 sta $2006
 lda #$00
 sta $2005
 sta $2005


  lda #%11001000   ;enable NMI,Sprites from VRAM1
  sta $2000
  lda #%00011110   ;Turn PPU ON,show 8 left pixels of BG and show sprites.
  sta $2001 

  rts

Czysc_Sprity:
           ldx #$00
	   stx $7F2
           lda #$F0
CZYSC_PETLA:           
           sta $600,X
           inx
           cpx #$00
           bne CZYSC_PETLA

	lda #$0
	sta $7F0
	ldy #$E8
	ldx #$00
	lda #$45
	jsr Rys1   ;Sprite 0
           rts

Czysc_Name:        ;Numer tila powinien by zaadowany przed wywoaniem funkcji.
 STX $2006         ;W rejestrze X jest od ktrego chunka zacz(20=pierwszy,21=drugi itp)

 ldx #$00           
 STX $2006  


Czysc_NameA:
 sta $2007
 inx 
 bne Czysc_NameA
 dey               ;Liczba chunkw powinna by zapodana w Y. 
 bne Czysc_NameA
 rts

SPR.PAL:	;Dla dizzy MOE
 ldx #$00
SPR.PAL2:
 lda PALData,x
 sta $710,x
 inx
 cpx #$10
 bne SPR.PAL2

SPR.PAL.RTS:
 rts

Sprite0Hit:
 lda Hit.Enable		;Sprawd czy sprite 0 hit wczony
 bne SPR.PAL.RTS

CheckSprite0Hit:

	lda $2002
	AND #%01000000
	cmp #%01000000
	bne CheckSprite0Hit

 lda #%00000110   ;Turn PPU ON,show 8 left pixels of BG and show sprites.
 sta $2001 

 ;jsr Laduj_Paleta

 lda $C0
 sta $2006
 lda $C3
 sta $2006
 lda $2007
 sta $500
 lda $2007
 sta $501
 lda $2007
 sta $502	;Te 3 bajty zapisuje dla ng

 lda $C1	;To odnonie kolizji dla boku	
 sta $2006
 lda $C4
 sta $2006
 lda $2007
 sta $503
 lda $2007
 sta $504
 lda $2007
 sta $505
 lda $2007
 lda $2007
 sta $506

 lda $C2	;To odnonie kolizji dla gowy
 sta $2006
 lda $C5
 sta $2006
 lda $2007
 sta $508
 lda $2007
 sta $509
 lda $2007
 sta $50A

 lda #$00
 sta $2006
 lda #$0
 sta $2006

 jsr BGAnim

	lda #%10001000  
	sta $2000
	lda #%00011110   ;Wcz PPU
	sta $2001 

Sprite0Hit.RTS:
	rts

BGAnim:
kontyn_BG:
 lda Buff.Enable
 AND #%00000011
 cmp #%00000001		;Tryb natychmiastowego wypenienia
 beq Instant_Fill
 cmp #%00000010		;Tryb wypisywania pojedyczego
 beq Instant_Fill


 lda Buff.Enable
 AND #%00000011
 cmp #%00000011		;Tryb Blackout
 beq Blackout

 jmp kontyn_BG1.2

Instant_Fill:
 ldx Buff.X		;Zaaduj X w Bufferze
Buffer_PPU
 lda Buff.HI
 sta $2006
 lda Buff.LO
 sta $2006
Buffer_PPU2:
 lda Buff.Text,x
 cmp #$FF		;Koniec Bufferu
 beq kontyn_BG1.1
 cmp #$FE		;Wczytaj nowy PPU adres
 beq Buffer_PPU3
 sta $2007
 inx

 lda Buff.Enable
 AND #%00000010
 cmp #%00000010		;Tryb wypisywania pojedyczego
 beq kontyn_BG1.2E

 jmp Buffer_PPU2

Buffer_PPU3:
 inx
 lda Buff.Text,x
 sta $2006
 sta Buff.LO
 inx
 lda Buff.Text,x
 sta $2006
 sta Buff.HI
 inx
 lda Buff.Enable
 AND #%00000010
 cmp #%00000010		;Tryb wypisywania pojedyczego
 bne Buffer_PPU2

 inc Buff.X
 inc Buff.X
 inc Buff.X

 jmp kontyn_BG1.2	;jeli wypisuje pojedyczo to trzeba zwikszy X i skoczy dalej

Blackout:
 lda Buff.LO
 sta $2006
 lda Buff.HI
 sta $2006
 ldx Buff.X
 lda Buff.Text
BlackoutLoop:		;ptla ktra czyci wskazan ilo PPU
 sta $2007
 dex
 bne BlackoutLoop
 jmp kontyn_BG1.2

kontyn_BG1.1:
 lda #$00
 sta Buff.Enable

 lda #$00
 sta $2006
 sta $2006

kontyn_BG1.2E:
 inc Buff.LO
 inc Buff.X

kontyn_BG1.2:
 rts