Ladder.Control:
 lda Nacisn_guzik
 and #%00001000 ;sprawd czy nacinito Select
 cmp #%00001000
 bne CHODZENIE3

 lda Gracz.control
 EOR #%00000010
 sta Gracz.control
 dec Hero_Y
 dec Hero_Y
 jmp CHODZENIE3
 
Blok_Ruchu_Animacja_Gra2:    ;Czyli znaczy e jak control flag ma 01 to dizz jest nieruchomy z animacj stania,jak 02 to z spadaniem(jeeli jeszcze musi..)itp.
  jmp Jump_Draw

Adv_Stery:
 lda #$00
 sta VBlankOrNo 
WaitForVBlank22:
 lda VBlankOrNo ; A = VBlankOrNO
 cmp #1         ; if A == 1 then is VBlank
 bne WaitForVBlank22 ; if not VBlank, then loop and do again
 dec VBlankOrNo ; 1-- or VBlankOrNO - 1 . VBlankOrNo will be 0 again.

 jsr Czysc_Sprity

Adv_Stery1:
 jsr KEYPAD

 lda Gracz.control
 AND #%00000001	
 cmp #%00000000	;Czy gracz ma kontrol
 beq CHODZENIE2	;Ma kontrol...

 lda Gracz.control
 AND #%10000000
 cmp #%10000000	;Czy gracz jest wywietlany
 beq Dont.Display

 jmp Jump_Draw

Dont.Display:
 jmp Main_Petla_Adv

CHODZENIE2:
 lda $505
 cmp #$45
 beq Ladder.Control
 cmp #$44
 beq Ladder.Control	;Czy gracz jest na drabinie...
 cmp #$42
 beq Ladder.Control
 cmp #$43
 beq Ladder.Control

 lda Gracz.control
 AND #%11111101
 sta Gracz.control	;Ustaw grawitacj,jeli gracz nie dotyka drabinki

CHODZENIE3:
 lda Nacisn_guzik
 and #%00100000 ;sprawd czy nacinito Select
 cmp #%00100000
 bne bhebhe

Do_Plecak_ADV:
 lda Trzyma_guzik
 bne bhebhe

 jsr START_Plecak
 jmp Main_Petla_Adv

bhebhe
 lda Nacisn_guzik
 cmp #$00
 beq Jump_STOI2

 lda Control_Flag
 bne Blok_Ruchu_Animacja_Gra2		;Czy moe si ruszy

 lda Nacisn_guzik
 and #%10000010 ;sprawd czy nacinito A
 cmp #%10000010
 beq Jump_Jumping_Lewo_Prawo

 lda Nacisn_guzik
 and #%10000001 ;sprawd czy nacinito A
 cmp #%10000001
 beq Jump_Jumping_Lewo_Prawo

 lda Nacisn_guzik
 and #%10000000 ;sprawd czy nacinito A
 cmp #%10000000
 beq Jump_Jumping

 and #%00000011 ;sprawd czy nacinito Prawo i lewo jednoczenie
 cmp #%00000011
 bne Przeskocz.skok

 jmp PRAWO_LEWO

Przeskocz.skok:
 lda Nacisn_guzik
 and #%00000001 ;sprawd czy nacinito Prawo
 cmp #%00000001
 beq PRAWO4

 lda Nacisn_guzik
 and #%00000010 ;sprawd czy nacinito Lewo
 cmp #%00000010
 bne Przeskocz.skok2
 jmp LEWO4

Przeskocz.skok2:
 lda Trzyma_guzik
 bne Jump_STOI2

Jump_STOI2:
 lda $90		;Sprawdza czy DIzzy jest w powietrzu
 bne Jump2_STOI2

 jmp Jump_Draw
Jump2_STOI2
 jmp STOI2

Jump_Jumping:
 lda Gracz.control
 AND #%00001000		;Wycz bit zatrzymujcy skok
 cmp #%00001000		;Jeli bajt skoku wyczony,pozwl na skok
 beq Jump2_STOI2

 lda Gracz.control
 ORA #%00001000
 sta Gracz.control

 lda #$2E		;Zacznij odliczanie klatek animacji dla skoku w miejscu
 sta Anim_licznik

 jsr Rys_DizzyDisplay_STOP
 jmp Jumping

Jump_Jumping_Lewo_Prawo:
 AND #%00000011
 cmp #%00000001
 beq Jump_Jumping_Lewo_Prawo1.1
 lda #$00
 sta Side_Jump
 jmp Jump_Jumping_Lewo_Prawo1.2

Jump_Jumping_Lewo_Prawo1.1:
 lda #$01
 sta Side_Jump
 lda $506
 jsr Kolizja.TRUE
 bne Jump_Jumping_Lewo_Prawo1.2

 inc Hero_X
 jmp Jump_Jumping_Lewo_Prawo1.3

Jump_Jumping_Lewo_Prawo1.2
 lda $504
 jsr Kolizja.TRUE
 bne Jump_Jumping_Lewo_Prawo1.3
 
 dec Hero_X

Jump_Jumping_Lewo_Prawo1.3
 lda #$60
 sta Anim_licznik
 jmp Jump_Jumping
 
 ;inc Control_Flag
 jmp Dizzy_side.jump_Adv


PRAWO4:
 lda $506
 jsr Kolizja.TRUE
 bne PRAWO_LEWO
 inc Hero_X

PRAWO_LEWO:
 lda $109
 clc
 adc #$06
 sta $109
 lda #$00
 sta SPR1	;Zmie ID Chr z grafik
 jsr Dizzy_Walk_Adv.LEFT
 jmp Main_Petla_Adv

LEWO4:
 lda $504
 jsr Kolizja.TRUE
 bne LEWO3

 dec Hero_X
LEWO3:
 lda $109
 clc
 adc #$06
 sta $109
 lda #$00
 sta SPR1	;Zmie ID Chr z grafik
 jsr Dizzy_Walk_Adv
 jmp Main_Petla_Adv
STOI2:
 lda Anim_licznik
 bne STOIcos		;Jeeli dizzy wskoczy na platform to niech ma dalej animacje  skoku na platformie zamiast stania
 jsr Rys_DizzyDisplay_STOP
 jmp Main_Petla_Adv

STOIcos:
 jmp Jump_Draw

Rys_DizzyDisplay_STOP:
 lda #$04
 jsr Adres_Data_Glace	;Ustal adres danych

 lda Hero_X
 sta X_Zdarzenie
 lda Hero_Y
 sta Y_Zdarzenie
 jsr Rys.Postac

	lda #$00
	sta SPR1
 
        rts

Dizzy_Walk_Adv.LEFT:
 lda $109
 cmp #$40	;7E,BD
 bcc Dizzy_Walk_Adv.LEFT2
 cmp #$80
 bcc Dizzy_Walk_Adv.LEFT3
 cmp #$C0
 bcc Dizzy_Walk_Adv.LEFT4

 lda #$09
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.LEFT2:
 lda #$06
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.LEFT3:
 lda #$07
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.LEFT4
 lda #$08
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv:
 lda $109
 cmp #$40	;7E,BD
 bcc Dizzy_Walk_Adv.2
 cmp #$80
 bcc Dizzy_Walk_Adv.3
 cmp #$C0
 bcc Dizzy_Walk_Adv.4

 lda #$06
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.2:
 lda #$09
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.3:
 lda #$08
 jmp Dizzy_Walk_Adv.OK

Dizzy_Walk_Adv.4
 lda #$07

Dizzy_Walk_Adv.OK:
 jsr Adres_Data_Glace	;Ustal adres danych

 lda Hero_X
 sta X_Zdarzenie
 lda Hero_Y
 sta Y_Zdarzenie
 jsr Rys.Postac

        rts

RysEX:
        stx $7F1
        ldx $7F2

        sta $7F3
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X
        sta $7f3

        lda $7F1     ;Zapisz X
        sta $607,X
        clc
        adc #$08
        sta $603,X

        TYA         ;Zapisz Y
        sta $604,X
        sta $600,X

        lda $7F0     ;Zapisz Atrybut
        sta $606,X
        sta $602,X

        TXA
        clc
        adc #$08
        sta $7F2
;******************************************
        ldx $7F2    ;Ustaw X na ilo spritw

        lda $7F3
        clc
        adc #$01
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X

        lda $7F1     ;Zapisz X
        sta $607,X
        clc
        adc #$08
        sta $603,X

        TYA         ;Zapisz Y
        clc
        adc #$08
        sta $604,X
        sta $600,X

        lda $7F0     ;Zapisz Atrybut
        sta $606,X
        sta $602,X

        TXA
        clc
        adc #$08
        sta $7F2

	rts

Jumping:
 lda $90
 bne No_Jumping

 lda #$22
 sta Y_Velocity

 ;inc Control_Flag

 inc Trzyma_guzik

No_Jumping:
 jmp Main_Petla_Adv

Jump_Draw:
 lda #$02
 sta SPR1

 lda #$00  ;Atryb
 clc
 adc Atryb_Tlo
 sta $7F0

 ldx Hero_X  ;X

 ldy Hero_Y  ;Y		;Wczeniejsze koordynaty dla sprita..
 lda #$00
 sta $90
 	lda Anim_licznik
 	cmp #$2A
 	bcc Jump_Draw1
 	cmp #$2E
 bcs klops
 jsr Rys_DizzyDisplay_STOP
 jmp Main_Petla_Adv

klops:
 lda #$00
 sta SPR1

 jmp Dizzy_side.jump_Adv

Jump_Draw1:
 lda #$00
 sta SPR1
 jsr Rys_DizzyDisplay_STOP
 jmp Main_Petla_Adv

;;;;;;;;;;;;;;;;]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
Dizzy_side.jump_Adv:
 lda Side_Jump
 bne Dizzy_side.jump_prawo	;sprawd w ktr stron skoczy
 lda #$00
 sta SPR1
 jsr Dizzy_Walk_Adv
 ;dec Hero_X
 jmp Dizzy_side.jump_Adv1.1

Dizzy_side.jump_prawo:
 lda #$00
 sta SPR1
 jsr Dizzy_Walk_Adv

 ;inc Hero_X
Dizzy_side.jump_Adv1.1
 lda $109
 clc
 adc #$06
 sta $109

 jmp Main_Petla_Adv

Rys.Dizzy:
        stx $7F1
        ldx $7F2

        sta $7F3
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X
	clc
	adc #$01
	sta $609,x
        sta $7f3

        lda $7F1     ;Zapisz X
        sta $603,X
        clc
        adc #$08
        sta $607,X
        clc
        adc #$08
	sta $60B,x

        TYA         ;Zapisz Y
        sta $600,X
        sta $604,X
	sta $608,X

        lda $7F0     ;Zapisz Atrybut
        sta $602,X
        sta $606,X
	sta $60A,x

        TXA
        clc
        adc #$0C
        sta $7F2
;******************************************
        ldx $7F2    ;Ustaw X na ilo spritw

        lda $7F3
	clc
	adc #$01
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X
	clc
	adc #$01
	sta $609,x
        sta $7f3

        lda $7F1     ;Zapisz X
        sta $603,X
        clc
        adc #$08
        sta $607,X
        clc
        adc #$08
	sta $60B,x

        TYA         ;Zapisz Y
	clc
	adc #$08
        sta $600,X
        sta $604,X
	sta $608,X

        lda $7F0     ;Zapisz Atrybut
        sta $602,X
        sta $606,X
	sta $60A,x

        TXA
        clc
        adc #$0C
        sta $7F2

;******************************************
        ldx $7F2    ;Ustaw X na ilo spritw

        lda $7F3
	clc
	adc #$01
        sta $601,X  ;Zapisz ID
        clc
        adc #$01
        sta $605,X
	clc
	adc #$01
	sta $609,x
        sta $7f3

        lda $7F1     ;Zapisz X
        sta $603,X
        clc
        adc #$08
        sta $607,X
        clc
        adc #$08
	sta $60B,x

        TYA         ;Zapisz Y
	clc
	adc #$10
        sta $600,X
        sta $604,X
	sta $608,X

        lda $7F0     ;Zapisz Atrybut
        sta $602,X
        sta $606,X
	sta $60A,x

        TXA
        clc
        adc #$0C
        sta $7F2

	rts