
;=====================================================================
; Време за задръжка при използване на дистанционно - 2,55с. за 2-ра ф-я и 1,51с. за 1-ва
; Светодиода свети при изключена лампа, при включване изгасва 
; Допълнителната задръжка след отпускане на бутон (ired) е 4-5s.
;======================================================================

		list	p=12c509a
		title	"Последователен фазов регулатор за осветление"
#include	"p12c509a.inc"

		__CONFIG	_MCLRE_OFF &_CP_OFF &_WDT_OFF &_IntRC_OSC

;======================================================================
;	Дефиниране на порта
;======================================================================
#define	triak	GPIO,0		; изход симистор
#define	lait	GPIO,1		; изход светодиод
#define	ired	GPIO,2		; вход инфра-приемник
#define	most	GPIO,3		; вход мостче-да запомня или да не запомня		
#define	buton	GPIO,4		; вход бутон
#define	sinxro	GPIO,5		; вход синхронизация

;======================================================================
;	Дефиниране битове на STATUS регистъра
;======================================================================
#define	stat_z	STATUS,2
#define	stat_c	STATUS,0
#define	page1	STATUS,5

;======================================================================
;	Дефиниране на регистри
;======================================================================
w		equ	d'0'
f		equ	d'1'

;======================================================================
;	Файлови регистри и регистри с общо предназначение
;======================================================================
TMRO		equ	H'0001'

system		equ	H'07'
system1		equ	H'08'
count		equ	H'09'
count1		equ	H'0a'
count2		equ	H'0b'
count_ob6t	equ	H'0c'
count_speed	equ	H'0d'
speed		equ	H'0e'
tempspeed	equ	H'0f'
cherven		equ	H'10'
zelensv		equ	H'11'
lait_sp		equ	H'12'		
pauzas		equ	H'13'
min		equ	H'14'
max		equ	H'15'
fun1b		equ	H'16'		
fun2b		equ	H'17'		
fun1i		equ	H'18'		
fun2i		equ	H'19'
tpauza		equ	H'1a'
prmin		equ	H'1b'
prmmin		equ	H'1c'
zadr		equ	H'1d'
system2		equ	H'1e'
nulak		equ	H'1f'

;======================================================================
;	Дефиниране на битове в 'system' и 'system1'
;======================================================================
#define	funkciq		system,0
#define	rab_ired	system,1
#define	rejim		system,2
#define	faza		system,3
#define	rab_buton	system,4
#define	flagmin		system,5
#define	flagmax		system,6
#define	onoff		system,7

#define	dopzadr		system1,0
#define	lait_kraen	system1,1
#define	dop_max		system1,2
#define	miga		system1,3
#define	regul_nepr	system1,4
#define	obratim		system1,5
#define	pyrva_ired	system1,6
#define	onoff_vtora	system1,7

#define	time		system2,7
#define	time1		system2,6

;====================================================================
;	Начало, калибрация и инициализация
;====================================================================

		org	H'00'	
		movwf	OSCCAL		; калибрация в OSCCAL
		goto	start

		org	H'04'
start		clrf	STATUS
		clrf	GPIO
		movlw	b'00111100'	
		tris	GPIO
		clrf	GPIO
		movlw	b'11000101'
		option
		clrf	system
		clrf	system1
		clrf	system2
		clrf	count_ob6t
		clrf	count_speed
		clrf	count2
		clrf	cherven
		movlw	D'35'		; максимална стойност на светене
		movwf	tempspeed
		movlw	D'139'		; минимална стойност
		movwf	speed
		clrf	lait_sp		
		movlw	D'1'
		movwf	pauzas
		movlw	D'4'		; 50ms
		movwf	fun1b
		movlw	D'49'		; 500ms
		movwf	fun2b
		movlw	D'155'		; 1,5s
		movwf	fun1i
		movlw	D'254'		; 2,5s
		movwf	fun2i
		movlw	D'1'
		movwf	tpauza		; при проверка за пауза
		goto	main

;=======================================================================
; 	Подпрограми
;=======================================================================
impuls		movlw	D'20'		;  _*3+6=времето
		movwf	count		; 60us продължителност на импулса
pak		decfsz	count,f
		goto	pak
		retlw	D'00'

pauza		movlw	D'255'		
		movwf	count1
pak2		movlw	D'255'
		movwf	count
pak1		decfsz	count,f
		goto	pak1
		decfsz	count1,f
		goto	pak2
		retlw	D'00'

;=======================================================================
;	Главна програма, светодиода мига два пъти
;=======================================================================
main		bsf	lait
		call	pauza
		call	pauza
		bcf	lait		; изгасва 	
		call	pauza
		call	pauza
		bsf	lait		; светва 
		call	pauza
		call	pauza
		bcf	lait		; изгасва 
		call	pauza
		call	pauza
		bsf	lait		; светва	

;======================================================================		
;	Първоначално синхронизиране и програма намаляне
;======================================================================
sinxro1		btfss	sinxro		; синхронизиране
		goto	ch1offp1
nula		btfsc	sinxro		; започва с '1' изчаква
		goto	nula
		goto	ch1offp1
ch1offp		movlw	D'152'		; тук идва от сканираща програм след отр. преход		
		movwf	nulak
		movf	TMRO,w
		subwf	nulak,w
		btfsc	stat_c
		goto	ch1offp		; още не е свършил отриц. преход
ch1offp1	btfss	sinxro		; стана '0' чака преход '1'
		goto	ch1offp1				
nula1		clrf	TMRO		; има преход (+)
		bsf	faza
		btfss	onoff
		goto	scan_p
no1off		movf	TMRO,w
		subwf	speed,w
		btfsc	stat_c
		goto	no1off
		bsf	triak
		call	impuls		; отпушва триака
		bcf	triak
		btfsc	flagmin		; дали е стигнал минимална стойност
		goto	scan_p
		btfss	funkciq	
		goto	c1off		; при 1-ва ф-я отива там
		btfss	onoff_vtora	
		goto	scan_p	
c1off		incf	count_speed,f
		movf	count_speed,w	
		subwf	lait_sp,w
		btfsc	stat_c		
		goto	scan_p		
		clrf	count_speed
		movf	speed,w		
		xorwf	min,w
		btfsc	stat_z
		goto	stanamin1			
		incf	speed,f
		btfss	onoff_vtora	
		goto	pr1va1
		movlw	D'122'		
		movwf	prmin		
		movf	speed,w
		subwf	prmin,w
		btfsc	stat_c
		goto	bezpr1
		movlw	D'123'		
		xorwf	speed,w
		btfsc	stat_z
		goto	bezpr1
		movlw	D'123'		
		movwf	speed
		movwf	tempspeed	; корегира грешката
		movwf	min		
		goto	stanamin1
pr1va1		movlw	D'138'		
		movwf	prmmin		
		movf	speed,w
		subwf	prmmin,w
		btfsc	stat_c
		goto	scan_p		
		movlw	D'139'		
		xorwf	speed,w
		btfsc	stat_z
		goto	scan_p		
		movlw	D'139'		; грешка 
		movwf	speed		; корегира грешката
		movwf	min		
		goto	stanamin1	
bezpr1		movf	speed,w
		movwf	tempspeed	
		goto	scan_p
stanamin1	bsf	flagmin		; достигна минимална стойност
		bcf	rejim	
		bcf	obratim
		btfss	onoff_vtora
		goto	off1
		bsf	lait		; светва за 1с. 
		movlw	D'100'
		movwf	cherven
		bsf	lait_kraen
		goto	scan_p
off1		bcf	onoff	  	; ще изключва
		btfss	flagmin
		goto	nulami1
		bcf	flagmin
nulami1		btfss	flagmax
		goto	nulama1
		bcf	flagmax
nulama1		bcf	rejim
		bsf	lait		; светва светодиода
		goto	scan_p
ch0offp		movlw	D'154'		
		movwf	nulak
		movf	TMRO,w		; чака за отрицателния полупериод
		subwf	nulak,w
		btfsc	stat_c
		goto	ch0offp		
		clrf	TMRO		
		bcf	faza		
		btfss	onoff
		goto	scan_p
no0off		movf	TMRO,w
		subwf	speed,w
		btfsc	stat_c
		goto	no0off
		bsf	triak
		call	impuls		
		bcf	triak
		btfsc	flagmin		
		goto	scan_p
		btfss	funkciq
		goto	c0off		
		btfss	onoff_vtora	
		goto	scan_p						
c0off		incf	count_speed,f
		movf	count_speed,w	
		subwf	lait_sp,w
		btfsc	stat_c		
		goto	scan_p		
		clrf	count_speed
		movf	speed,w		
		xorwf	min,w
		btfsc	stat_z
		goto	stanamin0
		incf	speed,f
		btfss	onoff_vtora	
		goto	pr1va0
		movlw	D'122'	
		movwf	prmin	
		movf	speed,w
		subwf	prmin,w
		btfsc	stat_c
		goto	bezpr0
		movlw	D'123'		
		xorwf	speed,w
		btfsc	stat_z
		goto	bezpr0
		movlw	D'123'		
		movwf	speed
		movwf	tempspeed	; корегира грешката
		movwf	min		
		goto	stanamin0
pr1va0		movlw	D'138'		
		movwf	prmmin		
		movf	speed,w
		subwf	prmmin,w
		btfsc	stat_c
		goto	scan_p		
		movlw	D'139'		
		xorwf	speed,w
		btfsc	stat_z
		goto	scan_p		
		movlw	D'139'		; грешка по-голямо е 
		movwf	speed		; корегира грешката
		movwf	min		
		goto	stanamin0	
bezpr0		movf	speed,w
		movwf	tempspeed
		goto	scan_p
stanamin0	bsf	flagmin		; достигна минимум
		bcf	rejim
		bcf	obratim
		btfss	onoff_vtora
		goto	off0
		bsf	lait		; светва за 1с.
		movlw	D'100'
		movwf	cherven
		bsf	lait_kraen
		goto	scan_p
off0		bcf	onoff	  	; ще изключва
		btfss	flagmin
		goto	nulami0
		bcf	flagmin
nulami0		btfss	flagmax
		goto	nulama0
		bcf	flagmax
nulama0		bcf	rejim
		bsf	lait		; светва 
		goto	scan_p

;=========================================================================
;	Увеличаване и регулиране
;=========================================================================
ch1onp		movlw	D'152'		
		movwf	nulak
		movf	TMRO,w
		subwf	nulak,w
		btfsc	stat_c
		goto	ch1onp		
ch1onp1		btfss	sinxro		; сканира синхро входа за положителен полупериод
		goto	ch1onp1
		clrf	TMRO		; преход (+)
		bsf	faza		; запомня прехода (+)
no1on		movf	TMRO,w
		subwf	speed,w
		btfsc	stat_c
		goto	no1on
		bsf	triak
		call	impuls		
		bcf	triak
		btfsc	flagmax		
		goto	scan_p
		btfsc	dop_max		
		goto	scan_p
		btfss	funkciq	
		goto	c1on		
		btfss	onoff_vtora	
		goto	scan_p				
c1on		incf	count_speed,f
		movf	count_speed,w	
		subwf	lait_sp,w
		btfsc	stat_c		
		goto	scan_p		
		clrf	count_speed
		movf	speed,w		
		xorwf	max,w	
		btfsc	stat_z		
		goto	stanamax1
		decf	speed,f
		movlw	D'36'		; проверка за грешка
		subwf	speed,w
		btfsc	stat_c
		goto	nofal1		; няма грешка
		movlw	D'35'		
		xorwf	speed,w
		btfsc	stat_z
		goto	nofal1		; точно е 
		movlw	D'35'		; грешка - корегира
		movwf	speed
		movwf	max		
		goto	maxstana1
nofal1		btfss	onoff_vtora			
		goto	scan_p
		movf	speed,w
		movwf	tempspeed
		goto	scan_p		
stanamax1	movf 	speed,w		
		xorlw	D'123'		; min при регулиране
		btfss	stat_z
		goto	nom1
		bsf	flagmin
		bsf	dop_max
		bcf	obratim
		goto	scan_p		
nom1		movf	speed,w		
		xorlw	D'35'		; max
		btfsc	stat_z
		goto	maxstana1	
		btfsc	onoff_vtora
		goto	scan_p
		bsf	dop_max		
		bcf	obratim
		goto	scan_p
maxstana1	bsf	flagmax		; достигна до максимална стойност
		bsf	rejim	
		bcf	obratim
		btfss	onoff_vtora	
		goto	scan_p
		bsf	lait		
		movlw	D'100'
		movwf	cherven
		bsf	lait_kraen
		goto	scan_p	
ch0onp		movlw	D'154'		
		movwf	nulak
		movf	TMRO,w		; чака отрицат. софтуерен преход
		subwf	nulak,w
		btfsc	stat_c
		goto	ch0onp		
		clrf	TMRO		; дойде прехода (-)
		bcf	faza		; запомня прехода (-)
no0on		movf	TMRO,w
		subwf	speed,w
		btfsc	stat_c
		goto	no0on
		bsf	triak
		call	impuls		
		bcf	triak
		btfsc	flagmax		
		goto	scan_p
		btfsc	dop_max		
		goto	scan_p
		btfss	funkciq
		goto	c0on		
		btfss	onoff_vtora	
		goto	scan_p	
c0on		incf	count_speed,f
		movf	count_speed,w	
		subwf	lait_sp,w
		btfsc	stat_c		
		goto	scan_p		
		clrf	count_speed
		movf	speed,w		
		xorwf	max,w
		btfsc	stat_z		
		goto	stanamax0
		decf	speed,f
		movlw	D'36'		; проверка за грешка
		subwf	speed,w
		btfsc	stat_c
		goto	nofal0		; няма грешка
		movlw	D'35'		
		xorwf	speed,w
		btfsc	stat_z
		goto	nofal0		; точно е 
		movlw	D'35'		; грешка - корегира
		movwf	speed
		movwf	max		
		goto	maxstana0
nofal0		btfss	onoff_vtora			
		goto	scan_p
		movf	speed,w
		movwf	tempspeed
		goto	scan_p		
stanamax0	movf 	speed,w		
		xorlw	D'123'		; min при регулиране
		btfss	stat_z
		goto	nom0
		bsf	flagmin
		bsf	dop_max
		bcf	obratim
		goto	scan_p		
nom0		movf	speed,w		
		xorlw	D'35'		; max
		btfsc	stat_z
		goto	maxstana0	
		btfsc	onoff_vtora
		goto	scan_p
		bsf	dop_max
		bcf	obratim
		goto	scan_p
maxstana0	bsf	flagmax		; стигна до максимум
		bsf	rejim
		bcf	obratim
		btfss	onoff_vtora	
		goto	scan_p
		bsf	lait		; светва за 1с.		
		movlw	D'100'
		movwf	cherven
		bsf	lait_kraen
scan_p		bsf	page1		; към втора страница
		goto	scan
		
;===========================================================================
;	Сканираща програма за бутона и дистанционното
;===========================================================================		
		org	H'200'
scan		btfsc	lait_kraen	; дали е флаг min, max 
		goto	izchvreme	; да
		btfsc	miga		; дали мига
		goto	scan2
		btfsc	pyrva_ired	; дали вече свети 
		goto	scan2
		goto	scan10
izchvreme	btfss	lait		; все пак дали свети, флага беше вклучен
		goto	izgasq1		; не свети, но флага е вклучен-ще го нулира
		decfsz	cherven,f	; обраотва времето на светене
		goto	kydebilo	
izgasq		bcf	lait		; изгася
izgasq1		bcf	lait_kraen	; нулира флага		
scan10		btfsc	rab_buton
		goto	scan1
		btfsc	rab_ired
		goto	scan2
scan1		btfsc	buton		; сканира бутона
		goto	nobuton
		btfsc	rab_buton	; при първо натискане на бутон
		goto	rabbuton
		bsf	rab_buton
		bcf	rab_ired
		movlw	D'1'
		movwf	pauzas		
rabbuton	btfsc	onoff_vtora	
		goto	funk2ired
		movf	count_ob6t,w
		subwf	fun2b,w		; 500ms 
		btfss	stat_c
		goto	funk2ired
		movf	count_ob6t,w
		subwf	fun1b,w		; 50ms 
		btfss	stat_c
		goto	dalif1b
		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	imapauzab
		incf	count_ob6t,f
		goto	kydebilo
dalif1b		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	funk1b		
		incf	count_ob6t,f
		goto	kydebilo
funk1b		clrf	count_ob6t
		bcf	rab_buton
		bcf	funkciq	
funk1ir		movlw	D'0'		; изпълнява 1-ва ф-я
		movwf	lait_sp		
		clrf	count_speed
		btfss	onoff		
		goto	vkl
		btfss	flagmax
		goto	neeem
		bcf	flagmax
pakminus	bsf	obratim	
otnmin		bsf	rejim		
		movlw	D'139'
		movwf	min
		btfss	faza
		goto	ch1off
		goto	ch0off
neeem		btfss	flagmin
		goto	neeemi
		bcf	flagmin	
		goto	pakminus
neeemi		btfss	obratim
		goto	pakminus	
		btfss	rejim
		goto	otnmin
		bcf	rejim
		goto	pakplus
vkl		bcf	lait		; изгасва светодиода
		bsf	obratim	
		bsf	onoff
		bcf	rejim
		btfss	flagmin		
		goto	nooset5
		bcf	flagmin
nooset5		btfss	flagmax
		goto	nooset6
		bcf	flagmax
nooset6		movlw	D'139'		
		movwf	speed
pakplus		btfsc	most		; какво е положението на джъмпара
		goto	pamet
		movlw	D'35'
		movwf	max
		goto	bezpamet
pamet		movlw	D'36'		; проверка дали е по-ниско 
		subwf	tempspeed,w
		btfsc	stat_c
		goto	przamin		
		movlw	D'35'		 
		xorwf	tempspeed,w
		btfsc	stat_z
		goto	poloj		; точно е 
		movlw	D'55'		; грешка - вкарва някаква реална стойност
		movwf	max
		movwf	tempspeed	
		goto	bezpamet
przamin		movf	tempspeed,w
		subwf	prmin,w
		btfsc	stat_c
		goto	poloj
		movlw	D'123'
		xorwf	tempspeed,w
		btfsc	stat_z
		goto	poloj		
		movlw	D'123'		; грешка - корегира 
		movwf	max
		movwf	tempspeed	
		goto	bezpamet
poloj		movf	tempspeed,w
		movwf	max		
bezpamet	bcf	dop_max		
		btfss	faza
		goto	ch1on
		goto	ch0on
funk2ired	btfsc	onoff_vtora	; изпълнява 2-ра ф-я	
		goto	funk2izp	
		bsf	onoff_vtora	
		bsf	funkciq	
		bcf	regul_nepr	
		clrf	count_ob6t
		clrf	count_speed	
funk2izp	btfsc	regul_nepr	
		goto	regnepr	
		movlw	D'123'
		movwf	min
		movlw	D'35'
		movwf	max
		movlw	D'4'
		movwf	lait_sp		
		bcf	dop_max		
		btfss	onoff
		goto	plus
		btfss	flagmin
		goto	nextmax
		bsf	regul_nepr
		bsf	obratim	
uvel		bcf	flagmin
		bcf	rejim
		btfss	faza
		goto	ch1on
		goto	ch0on
nextmax		btfss	flagmax
		goto	nominmax
		bsf	regul_nepr
		bcf	obratim	
namalq		bcf	flagmax
		bsf	rejim
		btfss	faza
		goto	ch1off
		goto	ch0off
nominmax	bsf	regul_nepr
		movf	tempspeed,w	
		subwf	prmin,w		
		btfss	stat_c	
		goto	plus2
		btfss	rejim
		goto	minus
		goto	plus1
plus		bcf	lait		; изгася светодиода
		bsf	onoff
		bsf	regul_nepr
plus2		movlw	D'139'
		movwf	speed
plus1		bcf	rejim
		btfss	faza
		goto	ch1on
		goto	ch0on
minus		bsf	rejim
		bcf	obratim	
		btfss	faza
		goto	ch1off
		goto	ch0off
regnepr		btfss	flagmin		
		goto	dalimax
		goto	uvel
dalimax		btfss	flagmax
		goto	nee
		goto	namalq
nee		goto	vry6ta
kydebilo	btfss	onoff
		goto	izklpol
		btfss	flagmax
		goto	neemax
		goto	pakmax
neemax		btfss	flagmin
		goto	vry6ta
		goto	izklpol
vry6ta		btfsc	rejim
		goto	izklpol
pakmax		btfss	faza
		goto	ch1on
		goto	ch0on
izklpol		btfss	faza
		goto	ch1off
		goto	ch0off
nobuton		btfss	rab_buton
		goto	scan2
		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	imapauzab
		incf	pauzas,f
		btfsc	onoff_vtora	
		goto	kydebilo
		goto	rabbuton
imapauzab	clrf	count_ob6t
		bcf	rab_buton
		bcf	onoff_vtora
scan2		btfss	ired		; сканира дистанционно
		goto	noired
		btfss	dopzadr
		goto	nezadr
		movlw	D'255'
		movwf	zadr
		goto	funk2ired
nezadr		btfsc	rab_ired
		goto	rabired		
		bsf	rab_ired
		bcf	rab_buton
		movlw	D'1'
		movwf	pauzas
rabired		btfsc	onoff_vtora
		goto	funk2izp
		btfsc	pyrva_ired	
		goto	rabstara	
		btfsc	miga	
		goto	natisnat
		bsf	miga
		bsf	lait		
		movlw	D'10'		; 100ms
		movwf	zelensv
		goto	rabstara
natisnat	btfss	lait		
		goto	nesveti
		decfsz	zelensv,f
		goto	rabstara
		bcf	lait		 
		movlw	D'30'		; 300ms
		movwf	zelensv
		goto	rabstara
nesveti		decfsz	zelensv,f
		goto	rabstara
		bsf	lait		
		movlw	D'10'
		movwf	zelensv		
rabstara	movf	count_ob6t,w
		subwf	fun2i,w		; 2,55s 
		btfss	stat_c
		goto	funk2i
		movf	count_ob6t,w
		subwf	fun1i,w		; 1,51s 
		btfss	stat_c
		goto	dalif1i
		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	imapauzai
		incf	count_ob6t,f
		goto	kydebilo
dalif1i		btfsc	pyrva_ired	
		goto	svetich
		bsf	pyrva_ired	
		bsf	lait		
		bcf	miga
svetich		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	funk1i
		incf	count_ob6t,f
		goto	kydebilo
funk1i		bcf	pyrva_ired	
		bcf	lait		
		clrf	count_ob6t
		bcf	funkciq	
		bcf	rab_ired
		goto	funk1ir
funk2i		bcf	lait		 
		bcf	pyrva_ired
		bsf	time
		goto	funk2ired
noired		btfss	rab_ired
		goto	pauzabi	
		btfss	time
		goto	iztvreme1
		btfsc	dopzadr
		goto	aktivna
		bsf	dopzadr
		movlw	D'255'
		movwf	zadr
		bcf	onoff_vtora	; да спре там където е била
		goto	kydebilo
aktivna		btfss	onoff_vtora
		goto	reset
		bcf	onoff_vtora	; да спре там където е била
reset		movf	zadr,w
		xorlw	D'0'
		btfsc	stat_z
		goto	iztvreme
		decf	zadr,f
		goto	kydebilo	
iztvreme	btfss	time1
		goto	pak255
		bcf	time		; нулира се при изтичане на 4-5с. задръжка
		bcf	time1
		goto	iztvreme1
pak255		movlw	D'255'
		movwf	zadr
		bsf	time1
		goto	kydebilo
iztvreme1	movf	pauzas,w		
		subwf	tpauza,w
		btfss	stat_c
		goto	imapauzai
		incf	pauzas,f
		btfsc	onoff_vtora	
		goto	kydebilo
		goto	rabired
imapauzai	clrf	count_ob6t
		bcf	rab_ired
		btfss	onoff_vtora
		goto	reset1
		bcf	onoff_vtora
reset1		bcf	dopzadr
		btfsc	miga
		bcf	miga
		btfss	onoff
		goto	dasveti		; ключа е изключен-да свети светодиода
		btfsc	lait
		bcf	lait
		goto	kydebilo
dasveti		btfss	lait
		bsf	lait
		goto	kydebilo
pauzabi		btfss	onoff		; проверка дали светодиода трябва да свете
		goto	dasveti1
		btfsc	lait
		bcf	lait
		goto	next_bi
dasveti1	btfss	lait
		bsf	lait
next_bi		movf	pauzas,w
		subwf	tpauza,w
		btfss	stat_c
		goto	imaveche
		incf	pauzas,f
imaveche	goto	kydebilo

ch1off		bcf	page1		; В първа страница
		goto	ch1offp
ch0off		bcf	page1		; В първа страница
		goto	ch0offp
ch1on		bcf	page1		; В първа страница
		goto	ch1onp
ch0on		bcf	page1		; В първа страница
		goto	ch0onp

		end		
