.NOLIST
.INCLUDE "M16DEF.INC"
.LIST
.DEF KLAWISZ =R23
.DEF SZYBKOSC =R24
.DEF JEDEN =R17
.DEF DWA =R18
.DEF TRZY = R19

LDI R26,0XFF
OUT DDRB,R26
LDI R27,0
OUT SPH,R27
OUT SPL,R26

LDI SZYBKOSC,1

POCZ:
	CALL UP
	CALL DOWN
	JMP POCZ

UP:
	OUT PORTB,R16
	CALL OPOZNIENIE
	INC R16
	CALL SPRAWDZ_KLAWISZ
	CPI R16,255
	BRNE UP
	RET

DOWN:
	OUT PORTB,R16
	CALL OPOZNIENIE
	DEC R16
	CALL SPRAWDZ_KLAWISZ
	CPI R16,0
	BRNE DOWN
	RET

OPOZNIENIE:
	LDI JEDEN,1
OP2:
	MOV DWA,SZYBKOSC
OP:
	DEC DWA
	BRNE OP
	DEC JEDEN
	BRNE OP2
	RET
SPRAWDZ_KLAWISZ:
	IN KLAWISZ,PIND
	CPI KLAWISZ,0XFE
	BRBS 001,SZYBCIEJ
	CPI KLAWISZ,0X7F
	BRBS 001,WOLNIEJ
	RET
SZYBCIEJ:
	CPSE SZYBKOSC,R26
	INC SZYBKOSC
	JMP SPRAWDZ_KLAWISZ

WOLNIEJ:
	CPSE SZYBKOSC,R27
	DEC SZYBKOSC
	JMP SPRAWDZ_KLAWISZ
