	list p=16F84A
#INCLUDE P16F84A.INC

	__CONFIG 3FF0H

INDF	EQU	00H	;ÄOCTÓÏ Ê ÏÀÌßTÈ ×EPEÇ FSR.
TMR0	EQU	01H	;TÀÉÌEP.
OPTIONR	EQU	81H	;
PCL		EQU	02H	;C×ET×ÈÊ ÊOÌÀHÄ.
STATUS	EQU	03H	;PEÃÈCTP COCTOßHÈß.'
FSR		EQU	04H	;PEÃÈCTP ÊOCBEHHOÉ ÀÄPECÀÖÈÈ.
PORTA	EQU	05H	;ÏOPT À BBOÄÀ;BÛBOÄÀ.
PORTB	EQU	06H	;ÏOPT B BBOÄÀ;BÛBOÄÀ.
TRISA  	EQU	85H	;HÀÏPÀBËEHÈß ÄÀHHÛÕ ÏOPTÀ À.
TRISB	EQU	86H	;HÀÏPÀBËEHÈß ÄÀHHÛÕ ÏOPTÀ B.
EEDATA	EQU	08H	;ÄÀHHÛÕ ÏÇÓ.
EECON1	EQU	88H	;PEÃÈCTP ×TEHÈß-ÇÀÏÈCÈ ÏÇÓ.
EEADR	EQU	09H	;ÀÄPECÀ ÏÇÓ.'
EECON2	EQU	89H	;PEÃÈCTP ×TEHÈß-ÇÀÏÈCÈ ÏÇÓ.
INTCON	EQU	0BH	;PEÃÈCTP ÔËÀÃOB ÏPEPÛBÀHÈÉ.
; OÏPEÄEËEHÈE PEÃÈCTPOB ÓCTÀHOBÊÈ.
                                
SEC0	EQU	0CH	;ÌËÀÄØÈÉ PÀÇPßÄ C×ET×ÈÊÀ.
SEC1	EQU	0DH	;CPEÄHÈÉ PÀÇPßÄ.
SEC2	EQU	0EH	;CTÀPØÈÉ PÀÇPßÄ.
CAT		EQU	0FH	;ÓCTÀHOBÊÀ ÇÀÏßTOÉ.
; OÏPEÄEËEHÈE ÁÈTOB COCTOßHÈß PEÃÈCTPOB ÔËÀÃOB.
FLAG	EQU  020H ; ÔËÀÃÈ ÓCTÀHOBOÊ:
;0-> ÏÓCÊ.
;1-> ÓCTÀHOBÊÀ ÏËÞC.
;2-> ÓCTÀHOBÊÀ ÌÈHÓC.
;3-> ÇÀÏÈCÜ B ÏÀÌßTÜ.
;4-> 
;5-> PEÆÈÌ: OÄHOPÀÇOBÛÉ - HEÏPEPÛBHÛÉ.
;6-> BÊËÞ×EHÈß CÏßÙEÃO PEÆÈÌÀ."
;7->  C×ÈTÛBÀHÈß.	

FLA	EQU    021H
;   ÔËÀÃÈ  PEÇÓËÜTÀTÀ  PÀÁOTÛ:
;0->  BÛÊËÞ×EHÈß  ÈHÄÈÊÀÖÈÈ.
;1->  ÇÀÏßTÀß.
;2->  ÇBOHOÊ.
;3->  ÈHÄÈÊÀÖÈÈ  BCEÕ  ÇÀÏßTÛÕ.
;   OÏPEÄEËEHÈE   PEÃÈCTPOB  ÈHÄÈÊÀÖÈÈ.
SECL                    EQU     010H	;EÄÈHÈÖÛ  CEÊÓHÄ ÈHÄÈÊÀÖÈÈ.
SECH                    EQU     011H	;ÄECßTÊÈ     CEÊÓHÄ ÈHÄÈÊÀÖÈÈ.
MINL                    EQU     012H	;EÄÈHÈÖÛ ÌÈHÓT  ÈHÄÈÊÀÖÈÈ.
MINH                    EQU     013H	;ÄECßTÊÈ ÌÈHÓT  ÈHÄÈÊÀÖÈÈ.
HOUL                    EQU     014H	;EÄÈHÈÖÛ ×ÀCOB  ÈHÄÈÊÀÖÈÈ.
HOUH                    EQU     015H	;ÄECßTÊÈ  ×ÀCOB  ÈHÄÈÊÀÖÈÈ.
DEYL                    EQU     016H	;EÄÈHÈÖÛ ÄHEÉ ÈHÄÈÊÀÖÈÈ.
ANOD                    EQU     017H	;ÀHOÄ.                                                                                            
SEGD                    EQU     018H	;CEÃÌEHTÛ.
;   PEÃÈCTPÛ:   BPEÌEHHÛE,	ÓCTÀHOBÊÈ.
PAUSA                 EQU     019H	;BPEÌß ÄO  BÕOÆÄEHÈß  B  CÏßÙÈÉ  PEÆÈÌ.
PAUSI                  EQU     01AH	;BPEÌß ÄO  BÛÊËÞ×EHÈß ÈHÄÈÊÀÖÈÈ.
COU                      EQU     01BH	;C×ET×ÈÊ  ÖÈÊËOB  C×ETÀ.
ABC                       EQU     01CH	;BPEÌEHHÛÉ  PEÃÈCTP  ÇÀÏÈCÈ.
W_TEMP               EQU     01DH	;ÁÀÉT  COÕPÀHEHÈß  PEÃÈCTPÀ W  ÏPÈ  ÏPEPÛBÀHÈÈ.
STATUS_TEMP  EQU     01EH	;ÁÀÉT  COÕPÀHEHÈß  PEÃÈCTPÀ  STATUS  ÏPÈ  ÏPEPÛBÀHÈÈ.
FSR_TEMP          EQU     01FH	;BPEÌEHHÛÉ ÄËß  FSR.
SEC                       EQU     022H	;BPEÌEHHÛÉ ÄËß  ÇÀÏÈCÈ.
COUI                    EQU     023H	;C×ET×ÈÊ ÖÈÊËOB ÈHÄÈÊÀÖÈÈ.
;   1.   ÏÓCÊ.
	ORG   0
	GOTO INIT 
	ORG  4
	GOTO CONST
;   2.   ÈHÈÖÈÀËÈÇÀÖÈß.
INIT
	BSF    STATUS,RP0	;ÏEPEÕOÄÈÌ B  ÁÀHÊ  1.
	MOVLW  B'00000100'	;ÏPEÄÄEËÈTEËÜ  ÏEPEÄ  TÀÉÌEPOÌ,   Ê=32   ...100,
	MOVWF  OPTION_REG^80H	;ÏOÄTßÃÈBÀÞÙÈE  PEÇÈCTOPÛ BÊËÞ×EHÛ.
	MOVLW  B'10100000'	;PÀÇPEØEHÈE  ÏPEPÛBÀHÈß  =  TMR0..
	MOVWF  INTCON
	MOVLW  B'00001000'	;   RA0-RA2,   RA4   -   HÀ  BÛÕOÄ,   RA3   -  BÕOÄ.
	MOVWF  TRISA^80H
	MOVLW  B'00000000'	;RB0-  RB7-Âûõîä
	MOVWF  TRISB^80H
	BCF    STATUS,RP0	;ÏEPEÕOÄÈÌ B  ÁÀHÊ  0.
	CLRF   FLAG	;CÁPÀCÛBÀEÌ BCE  ÔËÀÃÈ
 
	CLRF	FLA
	CLRF	TMR0	;BCE OÁHÓËßEÌ È ÓCTÀHÀBËÈBÀEÌ
	CLRF	SEC0
	CLRF	SEC1
	CLRF	SEC2
	CLRF	SECL
	CLRF	SECH
	CLRF	MINL
	CLRF	MINH
	CLRF	HOUL
	CLRF	HOUH
	CLRF	DEYL
	CLRF	PAUSA
	CLRF	PAUSI
	CLRF	COU
	CLRF	COUI
	CLRF	ABC
	MOVLW   .1	;ÓCTÀHÀBËÈBÀEÌ
	MOVWF   CAT	;PÀÇPßÄ ÇÀÏßTOÉ.
	GOTO   INDZIKLO
; 3. ÏPOBEPÊÀ HÀÆÀTÛÕ ÊHOÏOÊ ÓCTÀHOBÊÈ.
KEY
	BTFSS	PORTB,7	;.ECËÈ ÏÓCÊ BÊËÞ×EH (BÊËÞ×ÀETCß HÓËEÌ),
	GOTO	KEY3	;ÈÄEÌ BÊËÞ×ÀTÜ ÔËÀÃ ÏÓCÊÀ.
	BTFSS	PORTB,6	;OÏPEÄEËÈÌ ÓCTÀHOBÊÓ ÔËÀÃOB
	BSF	FLAG,1	;ÏËÞCÀ
	BTFSS	PORTB,5	;È
	BSF	FLAG,2	;ÌÈHÓCÀ.
	TSTF	FLAG	;ECËÈ HÈ×EÃO HE HÀÆÀTO,
	BZ	KEY2	;TO ÈÄEÌ C×ÈTÀTÜ BPEÌß ÄO ÏÀÓÇÛ.
	CLRF	PAUSA	;CÁPOCÈÌ PEÃÈCTP ÏÀÓÇÛ.
	GOTO	RECONST
KEY2
	BCF	STATUS,2
	INCF	PAUSA,1	;ÏPÈÁÀBËßEÌ 256 PÀÇ B CEÊÓHÄÀÕ
	BTFSC	STATUS,2	;ECËÈ ÓÆE HOËÜ,
	BSF	FLA,0 	;ÓCTÀHOBÈÌ ÔËÀÃ BÛÊËÞ×EHÈß ÈHÄÈÊÀÖÈÈ. •
	GOTO	RECONST	;ÇÀBEPØÀEÌ ÏPEPÛBÀHÈE.
KEY3
	BSF	FLAG,0	;ÓCTÀHOBÈÌ ÔËÀÃ ÏÓCÊÀ.
	GOTO	IND	;È CÄEËÀEÌ ÇÀÏÈCÜ B PEÃÈCTPÛ ÈHÄÈÊÀÖÈÈ.

; 4. BÛÁOP PÀÇPßÄÀ ÓCTÀHOBÊÈ.

CATI
	TSTF CAT	;ECËÈ ÈÇ ÏÀÌßTÈ C×ÈTÀH HOËÜ,
	BZ	CATO	;ÈÄEÌ ÓCTÀHÀBËÈBÀTÜ.
	BCF	STATUS, 0	;OÁHÓËÈÌ PÀÇPßÄ, ×TOÁÛ ÏPÈ CÄBÈÃE ÇÀÏÈCÀTÜ 0.
	RLF	CAT,1	;CÄBÈHEÌ BËEBO HÀ 1 PÀÇPßÄ ÇÀÏßTÓÞ.
	BTFSS	CAT,3	;ECËÈ EÙE HE 3 PÀÇPßÄ,
	GOTO	RECONST
 
	CLRF	CAT	;ÈHÀ×E ÓCTÀHÀBËÈBÀEÌ
	BSF	CAT,0	;HÓËEBOÉ PÀÇPßÄ.
	GOTO	IND	;OÁHOBÈÌ ÈHÄÈÊÀÖÈÞ.
CATO
	BSF	CAT,0	;ÓCTÀHÀBËÈBÀEÌ HÓËEBOÉ PÀÇPßÄ.
	GOTO	RECONST
; 5. TÀÁËÈÖÀ ÇHÀ×EHÈÉ CEÃÌEHTOB.
SEGDATA	               ;7,6, 5, 4, 3, 2, 1, 0.
	ADDWF	PCL,F	;H,	G, F, E, D, C, B, À.
;ÀHOÄ	ÊÀTOÄ
	RETLW	B'11000000'	;	0	B'0111111'
	RETLW	B'11111001'	;	1	B'0000110'
	RETLW	B'10100100'	;	2	B'1011011'
	RETLW	B'10110000'	;	3	B'1001111'
	RETLW	B'10011001'	;	4	B'1100110'
	RETLW	B'10010010'	;	5	B'1101101'
	RETLW	B'10000010'	;	6	B'1111101'
	RETLW	B'11111000'	;	7	B'0000111'
	RETLW	B'10000000'	;	8	B'1111111'
	RETLW	B'10010000'	;	9	B'1101111'
	
;ÊÀÒÎÄ	
	; RETLW	B'00111111'
	; RETLW	B'00000110'
	; RETLW	B'01011011'
	; RETLW	B'01001111'
	; RETLW	B'01100110'
	; RETLW	B'01101101'
	; RETLW	B'01111101'
	; RETLW	B'00000111'
	; RETLW	B'01111111'
	; RETLW	B'01101111'
	
; á. ÈHÄÈÊÀÖÈß.
INDZIKLO
	BSF	INTCON,7	;×TOÁÛ HE ÏPOÏÓCTÈTÜ ÏPEPÛBÀHÈE.
	BTFSC	FLA,0	;ECËÈ ÔËÀÃ ÃÀØEHÈß ÈHÄÈÊÀÖÈÈ BÊËÞ×EH,
	GOTO 	MRAK	;ÏOÉÄEÌ ÃÀCÈTÜ ÈHÄÈÊÀÖÈÞ.
	CLRF	ANOD 	;OÁHÓËßEÌ ÀHOÄ, ×TOÁÛ O×ÈCTÈTÜ CTÀPØÈE PÀÇPßÄÛ.
	BSF	ANOD,0	;ÓCTÀHOBÈÌ ÌË. PÀÇPßÄ ÀHOÄÀ.
	BTFSS	FLAG,0	;ECËÈ ÏÓCÊ HE BÊËÞ×EH,
	GOTO	ZIKLS	;ÈHÄÈÊÀÖÈß B CEÊÓHÄÀÕ.
	BTFSC	CAT,1	;ECËÈ ÇÀÏßTÀß B ÏEPBOÌ PÀÇPßÄE,
	GOTO	ZIKLM	;ÈHÄÈÊÀÖÈß B ÌÈHÓTÀÕ.
	BTFSC	CAT,2	;ECËÈ ÇÀÏßTÀß BO BTOPOÌ PÀÇPßÄE,
	GOTO	ZIKLH	;ÈHÄÈÊÀÖÈß B ×ÀCÀÕ.
ZIKLS
	MOVLW	010H	;ÇÀÏÈCÜ HOÌEPÀ PEÃÈCTPÀ ÌË. PÀÇPßÄÀ CEÊÓHÄ
	MOVWF	SEGD	;B PEPÈCTP ÀÄPECÀ PÀÇPßÄÀ.
	GOTO	ZIKLC
ZIKLM
	MOVLW	012H	;ÇÀÏÈCÜ ÌË. PÀÇPßÄÀ ÌÈHÓT
	MOVWF	SEGD	;B PEPÈCTP ÀÄPECÀ PÀÇPßÄÀ.
	GOTO	ZIKLC	;	>
ZIKLH
	MOVLW	014H	;ÇÀÏÈCÜ ÌË. PÀÇPßÄÀ ×ÀCOB.
	MOVWF	SEGD	;B PEPÈCTP ÀÄPECÀ PÀÇPßÄÀ.
ZIKLC
	BTFSS	FLAG,5	;ECËÈ BÊËÞ×EH HEÏPEPÛBHÛÉ PEÆÈÌ
	GOTO	ZIKLA
	INCF	COUI,1	;+l C×ÈTÀEÌ ÖÈÊËÛ ÈHÄÈÊÀÖÈÈ.
	MOVLW	.150	;150 ÖÈÊËOB ÃOPßT BCE ÇÀÏßTÛE,
	SUBWF	COUI,0	;ÈHÄÈÖÈPÓß HEÏPEPÛBHÛÉ PEÆÈÌ.
 
	BZ	COUZ
	BTFSS	FLA,3	;ECËÈ ÔËÀÃ ÖÈÊËOB PÀBEH O,
	GOTO	ZIKLA	;ÇÀÏßTÀß CBETÈTCß.
	GOTO	ZIKLF 	;ÈHÀ×E CBETßTCß BCE ÇÀÏßTÛE.
COUZO
	BCF      FLA,3	;CÁPÀCÛBÀEÌ ÔËÀÃ ÖÈÊËOB.
ZIKLA
	MOVFW	ANOD	;CPÀBHÈÌ PÀÇPßÄ ÀHOÄÀ
	SUBWF	CAT,0	;C PÀÇPßÄOÌ ÇÀÏßTOÉ.
	BTFSC	STATUS,2	;ECËÈ OHÈ COBÏÀÄÀÞT,
	BSF	FLA,1	;ÓCTÀHOBÈÌ ÔËÀÃ ÇÀÏßTOÉ.
	GOTO	ZIKLF	;BÛCBETÈÌ.
COUZ
	CLRF     COUI	;OÁHÓËÈËÈ C×ET×ÈÊ ÖÈÊËOB ÈHÄÈÊÀÖÈÈ.
	BTFSC    FLA,3	;ÏPOÏÓCTÈTÜ, ECËÈ 0.
	GOTO     COUZO	;ÈHÀ×E ÈÄEÌ CÁPÀCÛBÀTÜ ÔËÀÃ È CBETÈTÜ ÇÀÏßTÓÊ
	BSF      FLA,3	;ÓCTÀHOBÊÀ ÔËÀÃÀ ÖÈÊËOB.
ZIKLF
	BTFSC	FLA, 2	;ECËÈ BÊËÞ×EH ÇBOHOÊ,
	BCF	ANOD,4	;ÓCTÀHOBÈÌ B HOËÜ PÀÇPßÄ ÇBOHÊÀ (0-BÊËÞ×EHO).
	BTFSS	FLA,2	;ECËÈ ÇBOHOÊ BÛÊËÞ×EH,
	BSF	ANOD,4	;ÓCTÀHOBÈÌ B EÄÈHÈÖÓ PÀÇPßÄ ÇBOHÊÀ.
	MOVFW	SEGD	;ÇÀÃPÓÆÀEÌ ÇHÀ×EHÈE
	MOVWF	FSR	;B PEÃÈCTP ÊOCBEHHOÉ ÀÄPECÀÖÈÈ.
	MOVFW	INDF	;BÛÁÈPÀEÌ 2-10 ÇHÀ×EHÈE.
	CALL	SEGDATA	;ÏPEOÁPÀÇÓEÌ B CEÌÈCEÃÌEHTHOE ÄËß ÈHÄÈÊÀÖÈÈ
	MOVWF	PORTB	;B ÏOPT B.
	BTFSC	FLA,1	;ECËÈ ÔËÀÃ ÇÀÏßTOÉ BÊËÞ×EH,
	BCF	PORTB,7	;TO BÛCBETÈÌ ÇÀÏßTÓÞ.
	BTFSC	FLA,3	;ECËÈ ÔËÀÃ ÖÈÊËOB =1,
	BCF	PORTB,7	;TO BÛCBETÈÌ ÇÀÏßTÓÞ.
	MOVFW	ANOD	;ÇÀÃPÓÆÀEÌ ÇHÀ×EHÈE ÀHOÄÀ.
	MOVWF	PORTA	;B ÏOPT À..
	BCF	FLA,1	;CÁPOCÈÌ ÔËÀÃ ÇÀÏßTOÉ.
	BCF	ANOD,4 	;CÁPOCÈÌ PÀÇPßÄ ÇBOHÊÀ, ×TOÁÛ HE ÌEØÀË CPÀBHEHÈÞ.
	BCF	STATUS,0	;OÁHÓËÈÌ, ×TOÁÛ HE ÇÀÏÈCÀTÜ B ÌË. PÀÇPßÄ.
	RLF	ANOD,1	;CÄBÈÃ 1 ÀHOÄÀ HÀ 1 PÀÇPßÄ BËEBO.
	BTFSC	ANOD,3	;ECËÈ ÓÆE ÄOØËÈ ÄO 3 PÀÇPßÄÀ,
	GOTO	INDZIKLO	;ÈÄEÌ OÁHÓËßTÜ.
	INCF	SEGD,F	;+l B PEÃÈCTP ÀÄPECÀ PÀÇPßÄÀ.
	GOTO	ZIKLC	;È ÈÄEÌ.
MRAK
	MOVLW	0FFH	;ÏOÃÀCÈÌ CEÃÌEHTÛ.
	MOVWF	PORTB
	BTFSS	FLA,0	;ECËÈ ÈHÄÈÊÀÖÈß BÊËÞ×EHÀ,
	GOTO	INDZIKLO	;ÏOÉÄEÌ CBETÈTÜ.
	BTFSC	FLA,2	;ECËÈ BÊËÞ×ÈËCß ÇBOHOÊ,
	GOTO	MRAKI	;ÈÄEÌ BÊËÞ×ÀTÜ ÈHÄÈÊÀÖÈÞ.
	BSF    INTCON,7	;ÓCTÀHÀBËÈBÀEÌ ÁÈT PÀÇPEØEHÈß ÏPEPÛBÀHÈß.
	GOTO	MRAK	;ÇÀÖÈÊËÈÌCß.
MRAKI
	BCF	FLA,0	;BÊËÞ×ÈÌ ÈHÄÈÊÀÖÈÞ.
	GOTO	INDZIKLO	;HÀ ÈHÄÈÊÀÖÈÞ.
	 
; 7. BÛÁOPÊÀ ÈÇ ÏÀÌßTÈ.
ÀÊT	
	BCF	FLAG,7     ;CÁPOCÈÌ ÔËÀÃ C×ÈTÛBÀHÈß.
	CLRF	EEADR      ;HÓËEBOÉ ÀÄPEC.
	CALL	AKTETE     ;BÛÁOPÊÀ ÈÇ ÏÀÌßTÈ.
	MOVWF	SEC0       ;ÇÀÏÈCÜ B PEÃÈCTP .
	INCF	EEADR,1    ;1 ÀÄPEC.
	CALL	AKTETE     ;BÛÁOPÊÀ ÈÇ ÏÀÌßTÈ.
	MOVWF	SEC1       ;ÇÀÏÈCÜ B PEÃÈCTP .
	INCF	EEADR,1    ;2 ÀÄPEC.
	CALL	AKTETE     ;BÛÁOPÊÀ ÈÇ ÏÀÌßTÈ.
	MOVWF	SEC2       ;ÇÀÏÈCÜ B PEÃÈCTP .
	INCF	EEADR,1    ;3 ÀÄPEC.
	CALL	AKTETE     ;BÛÁOPÊÀ ÈÇ ÏÀÌßTÈ.
	MOVWF	CAT        ;ÇÀÏÈCÜ B PEÃÈCTP .
	CLRF	EEADR      ;HÓËEBOÉ ÀÄPEC.	. '
	GOTO	IND        ;OÁHOBÈÌ ÈHÄÈÊÀÖÈÞ.
AKTETE
	BSF	STATUS,RP0 ;ÁÀHÊ 1.
	BSF  EECON1^80H,RD ;×TEHÈE.
	BCF	STATUS,RP0 ;ÁÀHÊ O.
	MOVLW	.255       ;ECËÈ ÏÀÌßTÜ HE ÇÀÏOËHEHÀ,
	SUBWF	EEDATA,0   ;ÇÀÏÈØEÌ -O.
	BTFSC	STATUS,Z
	CALL 	AKTEO
	MOVFW	EEDATA     ;ÏEPEÏÈØEÌ ÄÀHHÛE.
	RETURN 
AKTEO
	CLRF	EEDATA
	RETURN
; 8. ÇÀÏÈCÜ B ÏÀÌßTÜ.
ZAPISO
	CLRF	EEADR        ;OÁHÓËÈÌ ÀÄPEC.
	MOVLW	0CH	;ÀÄPEC ÏEPBOÉ ÇÀÏÈCÈ B EEDATA.
	MOVWF	ABC	;BO BPEÌEHHÛÉ PEÃÈCTP.
ZAPISE
	MOVWF	ABC	;ÏO ÊOCBEHHOÉ ÀÄPECÀÖÈÈ
	MOVWF	FSR	;ÇÀÃPÓÆÀEÌ ÇHÀ×EHÈE
	MOVFW	INDF	;PEÃÈCTPÀ.
	MOVWF	EEDATA       ;ÇÀÏÈCÛBÀEÌ.
	BCF	INTCON,GIE   ;ÇÀÏPET ÏPEPÛBÀHÈÉ.
	BSF	STATUS,RP0  ;ÁÀHÊ 1.
	BSF	EECON1^80H,WREN ;PÀÇPEØEHÈE ÇÀÏÈCÈ.
	MOVLW	55H	;OÁßÇÀTEËÜHÀß ÏOCËEÄOBÀTEËÜHOCTÜ
	MOVWF	EECON2^80H   ;;
	MOVLW	0AAH	; ;
	MOVWF	EECON2^80H   ;;
	BSF	EECON1^80H,WR ;ÏPÈ ÇÀÏÈCÈ BO ÔËEØ ÏÇÓ.
ZAPIZ
	BTFSS	EECON1^80H,4 ;ÏOÊÀ HE ÁÓÄET ÇÀÊOH×EHÀ ÇÀÏÈCÜ
 
	GOTO	ZAPIZ	;ÕOÄÈÌ ÏO ÊPÓÃÓ.
	BCF	EECON1^80H,4 ;
	BCF	EECON1^80H,WREN ;ÇÀÏPET'ÇÀÏÈCÈ.2
	BCF	STATUS,RP0	;ÁÀHÊ O.                            .
	INCF	EEADR,1  
	MOVFW	EEADR	;ECËÈ ÓÆE 4,
	SUBLW	.4
	BZ	EEOO	;TO ÈÄEÌ OÁHÓËßTÜ.
	INCF	ABC,1	;+l B C×ET×ÈÊ ÀÄPECÀ.
	GOTO	ZAPISE	;ÏO ÊPÓÃÓ ÄO ÊOHÖÀ ÇÀÏÈCÈ.
EEOO
	CLRF	EEADR	;OÁHÓËÈÌ ÀÄPEC
	BCF	FLAG,3	;È ÔËÀÃ.
	GOTO	RECONST
; 9. ÓCTÀHOBÊÀ - ÌÈHÓC.
MINUS
	BCF      FLAG,2	;CÁPOCÈÌ ÔËÀÃ ÌÈHÓCÀ.
	BTFSC    CAT, 1	;ECËÈ ÇÀÏßTÀß B ÏEPBOÌ PÀÇPßÄE,
	GOTO     MINUS1	;ÈÄEÌ ÓCTÀHÀBËÈBÀTÜ ÏEPBÛÉ PÀÇPßÄ.
	BTFSC    CAT,2	;ECËÈ ÇÀÏßTÀß BO BTOPOÌ PÀÇPßÄE,
	GOTO     MINUS2	;ÈÄEÌ ÓCTÀHÀBËÈBÀTÜ BTOPOÉ PÀÇPßÄ.
	DECF     SEC0,1	;-l ÈÇ PEÃÈCTPÀ ÌËÀÄØEÃO PÀÇPßÄÀ.
	MOVLW    .255	;ECËÈ B PEÃÈCTPE 0, TO PEÇÓËÜTÀT =255.
	SUBWF    SEC0,0	;ECËÈ PÀBHO 0, ÈÄEÌ
	BZ       MINUS9	;HÀ ÓCTÀHOBÊÓ 9 B ÌËÀÄØEÌ PÀÇPßÄE. '
	GOTO IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
MINUS9
	MOVLW    .9
	MOVWF    SEC0	;ÓCTÀHOBÊÀ 9 B ÌËÀÄØEÌ PÀÇPßÄE.
	GOTO IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
MINUS1
	DECF     SEC1,1	;-l ÈÇ PEÃÈCTPÀ CPEÄHEÃO PÀÇPßÄÀ.
	MOVLW    .255	;ECËÈ B PEÃÈCTPE 0, TO PEÇÓËÜTÀT =255.
	SUBWF    SEC1,0	;ECËÈ PÀBHO 0, ÈÄEÌ
	BZ       MINUS19	;HÀ ÓCTÀHOBÊÓ 9 B CPEÄHEÌ PÀÇPßÄE.
	GOTO IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
MINUS19
	MOVLW    .9
	MOVWF    SEC1	;ÓCTÀHOBÊÀ 9 B CPEÄHEÌ PÀÇPßÄE.'
	GOTO IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
MINUS2
	DECF     SEC2,1	;-l ÈÇ PEÃÈCTPÀ CTÀPØEÃO PÀÇPßÄÀ.
	MOVLW    .255	;ECËÈ B PEÃÈCTPE 0, TO PEÇÓËÜTÀT =255.
	SUBWF    SEC2,0	;ECËÈ PÀBHO 0, ÈÄEÌ
	BZ       MINUS29	;HÀ ÓCTÀHOBÊÓ 9 B CTÀPØEÌ PÀÇPßÄE.
	GOTO IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
MINUS29
	MOVLW    .9 
	MOVWF    SEC2	;ÓCTÀHOBÊÀ 9 B CTÀPØEÌ PÀÇPßÄE.
	GOTO     IND	;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
 
; 10. ÓCTÀHOBÊÀ - ÏËÞC.
PLUS
	BCF	FLAG,1     ;CÁPOC ÔËÀÃÀ ÏËÞCÀ.
	BTFSC	CAT,1      ;ECËÈ ÇÀÏßTÀß B ÏEPBOÌ PÀÇPßÄE,
	GOTO	PLUS1      ;ÈÄEÌ ÓCTÀHÀBËÈBÀTÜ ÏEPBÛÉ PÀÇPßÄ.
	BTFSC	CAT,2      ;ECËÈ ÇÀÏßTÀß BO BTOPOÌ PÀÇPßÄE,
	GOTO	PLUS2      ;ÈÄEÌ ÓCTÀHÀBËÈBÀTÜ BTOPOÉ PÀÇPßÄ.
	INCF	SEC0,1     ;+l B PEÃÈCTP.
	MOVLW	.10        ;ECËÈ B PEÃÈCTPE 10, TO
	SUBWF	SEC0,0
	BZ	PLUS0      ;ÈÄEÌ OÁHÓËßTÜ.
	GOTO	IND ;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
PLUS0
	CLRF	SEC0
	GOTO	IND ;HA ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
PLUS1
	INCF	SEC1,1     ;+l B PEÃÈCTP.
	MOVLW	.10        ;ECËÈ B PEÃÈCTPE 10, TO
	SUBWF	SEC1,0
	BZ	PLUS10     ;ÈÄ¨Ì OÁHÓËßTÜ.
	GOTO	IND ;HA ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
PLUS10
	CLRF	SEC1
	GOTO	IND ;HA ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
PLUS2
	INCF	SEC2,1     ;+l B PEÃÈCTP.
	MOVLW    .10        ;ECËÈ B PEÃÈCTPE 10, TO
	SUBWF	SEC2,0
	BZ	PLUS20    ;ÈÄEÌ OÁHÓËßTÜ.
	GOTO	IND ;HA ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
PLUS20
	CLRF	SEC2
	GOTO	IND        ;HÀ ÓCTÀHOBÊÓ PEÃÈCTPOB ÈHÄÈÊÀÖÈÈ.
; 11. ÇÀÏÈCÜ B PEÃÈCTPÛ ÈHÄÈÊÀÖÈÈ.
IND
	BTFSS	FLAG,0     ;ECËÈ ÏÓCÊÀ HET,
	GOTO	INDS       ;ÈHÄÈÖÈPÓEÌ B CEÊÓHÄÀÕ.
	BTFSC	CAT,1      ;ECËÈ ÇÀÏßTÀß B ÏEPBOÌ PÀÇPßÄE,
	GOTO	INDM       ;ÈHÄÈÖÈPÓEÌ B ÌÈHÓTÀÕ.
	BTFSC	CAT,2      ;ECËÈ ÇÀÏßTÀß BO BTOPOÌ PÀÇPßÄE,
	GOTO	INDH       ;ÈHÄÈÖÈPÓEÌ B ×ÀCÀÕ.
INDS
	CLRF 	DEYL       ;OÁHÓËßEÌ PEÃÈCTPÛ
	CLRF	HOUH      ;CTÀPØÈÕ PÀÇPßÄOB.
	CLRF	HOUL
	CLRF	MINH
	MOVFW	SEC0       ;ÇHÀ×EHÈE ÌË. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	SECL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ CEÊÓHÄ.
	MOVFW	SEC1       ;ÇHÀ×EHÈE CP.. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	SECH       ;ÏEPEÏÈCÛBÀEÌ*B CT. PÀÇPßÄ CEÊÓHÄ
 
	MOVFW	SEC2       ;ÇHÀ×EHÈE CT. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	MINL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ .ÌÈHÓT.
	GOTO	RECONST
INDM
	CLRF	SECL       ;OÁHÓËßEÌ PEÃÈCTPÛ
	CLRF	SECH       ;ÏPEÄÛÄÓÙÈÕ PÀÇPßÄOB.
	CLRF	HOUH       ;È CTÀPØÈÕ PÀÇPßÄOB.
	CLRF	DEYL
	MOVFW	SEC0       ;ÇHÀ×EHÈE ÌË. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	MINL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ ÌÈHÓT.
	MOVFW	SEC1       ;ÇHÀ×EHÈE CP. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	MINH       ;ÏEPEÏÈCÛBÀEÌ B CT. PÀÇPßÄ ÌÈHÓT.
	MOVFW	SEC2       ;ÇHÀ×EHÈE CT. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	HOUL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ ×ÀCOB.
	GOTO	RECONST
INDH
	CLRF	SECL       ;OÁHÓËßEÌ PEÃÈCTPÛ
	CLRF	SECH       ;ÏPEÄÛÄÓÙÈÕ
	CLRF	MINL       ;PÀÇPßÄOB.
	CLRF	MINH
	MOVFW	SEC0       ;ÇHÀ×EHÈE ÌË. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	HOUL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ ×ÀCOB.
	MOVFW	SEC1       ;ÇHÀ×EHÈE CP. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	HOUH       ;ÏEPEÏÈCÛBÀEÌ B CT. PÀÇPßÄ ×ÀCOB.
	MOVFW	SEC2       ;ÇHÀ×EHÈE CT. PÀÇPßÄÀ ÓCTÀHOBÊÈ
	MOVWF	DEYL       ;ÏEPEÏÈCÛBÀEÌ B ÌË. PÀÇPßÄ ÄHEÉ.
	GOTO	RECONST
; 12. CTOÏ.
STOP
	BTFSC	FLA,2	;ECËÈ BÊËÞ×EH ÇBOHOÊ,
	GOTO	STOPO	;ÏOÉÄEÌ BÛÊËÞ×ÈÌ EÃO.
	CLRF	FLAG	;ECËÈ HÀÆÀTÀ TOËÜÊO ÊHOÏÊÀ CTOÏ,
	CLRF	FLA	;CÁPOCÈÌ ÔËÀÃÈ.
	BTFSS	PORTB,6	;ECËÈ BÊËÞ×EH CTOÏ È ËËÞC,
	BSF	FLAG,3	;ÓCTÀHOBÈÌ ÔËÀÃ ÇÀÏÈCÈ.
	BTFSS	PORTB,5	;ECËÈ BÊËÞ×EH CTOÏ È ÌÈHÓC,
	BSF	FLAG,7	;ÓCTÀHOBÈÌ ÔËÀÃ C×ÈTÛBÀHÈß.
	BTFSS	PORTA,3	;ECËÈ BÊËÞ×EH CTOÏ È ÇÏT.,
	BSF	FLAG,5	;ÓCTÀHOBÈÌ ÔËÀÃ HEÏPEPÛBHOÃO PEÆÈÌÀ.
	TSTF	FLAG	;ECËÈ ECTÜ ÓCTÀHOBÊÀ,
	BTFSC	STATUS,2	;
	CLRF	PAUSA	;OÁHÓËÈÌ ÏÀÓÇÓ.
	GOTO	RECONST
STOPO
	BCF	FLA,2	 ;OÁHÓËÈÌ ÔËÀÃ ÇBOHÊÀ.
	BTFSC	FLAG,0	;ECËÈ HEÏPEPÛBHÛÉ PEÆÈÌ (ÏÓCÊ HE BÛÊËÞ×EH),
	GOTO	SL	;ÈÄEÌ C×ÈTÀTÜ ÄÀËÜØE.
	GOTO	RECONST	;ÈHÀ×E ÇÀBEPØÀEÌ ÏPEPÛBÀHÈE.
; 13. COÕPÀHEHÈE È BOCCTÀHOBËEHÈE ÇHÀ×EHÈÉ PEÃÈCTPOB ÏPÈ ÏPEPÛBÀHÈÈ.
CONST
	MOVWF  W_TEMP	;COÕPÀHEHÈE ÇHÀ×EHÈÉ PEÃÈCTPOB W È
	 
	MOVFW  STATUS	;STATUS,
	MOVWF  STATUS_TEMP	;
	MOVFW  FSR	;FSR.	*
	MOVWF  FSR_TEMP
	BSF    STATUS,5	;ÁÀHÊ 1.
	MOVLW  B'11110000'	;PÀÇPEØÀEÌ BÕOÄÀ RB4-RB7
	MOVWF  TRISB^80H	;ÄËß C×ÈTÛBÀHÈß COCTOßHÈß ÊHOÏOÊ.
	MOVLW B'10100000'	;
	MOVWF  INTCON
	BCF    STATUS,5	;BAHK 0.
	BTFSS  PORTB,4	;ECËÈ HÀÆÀTÀ ÊHOÏÊÀ "CTOÏ",
	GOTO   STOP	;ÈÄEÌ HÀ CTOÏ.
	BTFSC  FLAG,0	;ECËÈ ÔËÀÃ ÏÓCÊÀ =1,
	GOTO   SL	;TO ÈÄEÌ C×ÈTÀTÜ.
	BTFSS  PORTA,3	;ECËÈ HÀÆÀTÀ ÊHOÏÊÀ ÇÀÏßTOÉ,
	GOTO   CATI	;ÈÄEÌ ÌEHßTÜ ÇHÀ×EHÈE.
	BTFSC  FLAG,3	;ECËÈ ÔËÀÃ ÇÀÏÈCÈ ÓCTÀHOBËEH,
	GOTO   ZAPISO	;ÈÄEÌ HÀ ÇÀÏÈCÜ.
	BTFSC  FLAG,1	;ECËÈ ÓCTÀHOBËEH ÔËÀÃ ÏËÞCÀ,
	GOTO   PLUS	;ÈÄEÌ HÀ ÏËÞC.
	BTFSC  FLAG,2	;ECËÈ ÓCTÀHOBËEH ÔËÀÃ ÌÈHÓCÀ,
	GOTO   MINUS	;ÈÄEÌ HÀ ÌÈHÓC.
	BTFSC  FLAG,7	;ECËÈ ÓCTÀHOBËEH ÔËÀÃ C×ÈTÛBÀHÈß,
	GOTO   ÀÊT	;ÈÄEÌ C×ÈTÛBÀTÜ.
	GOTO   KEY	;HÀ OÏPOC ÊËÀBÈÀTÓPÛ.
RECONST	;¨OCCTÀHOBËEHÈE COÕPÀHEHHÛÕ ÇHÀ×EHÈÉ.
	BSF    STATUS,5	;ÁÀHÊ 1.
	MOVLW  B'00000000'	;PÀÇPEØÀEÌ BCE HÀ BÛÕOÄ.
	MOVWF  TRISB^80H
	BCF    STATUS,5	;ÁÀHÊ 0.
	MOVFW  STATUS_TEMP ;BOCCTÀHOBËEHÈE PEÃÈCTPOB:
	MOVWF  STATUS	;STATUS,
	MOVFW  FSR_TEMP
	MOVWF  FSR	;FSR,
	MOVFW  W_TEMP	;W.
	RETFIE	;BOÇBPÀT ÈÇ ÏPEPÛBÀHÈß.
; 14. C×ET B ×ÀCOBOÌ ÔOPÌÀTE.
SL
	BTFSS PORTB,7	;ECËÈ HÀÆÀTÀ ÊHOÏÊÀ ÏÓCÊ,
	BCF   FLA, 0	;BÊËÞ×ÈÌ ÈHÄÈÊÀÖÈÞ..
	TSTF  SECL	;ECËÈ ÌËÀÄØÈÉ PÀÇPßÄ PÀBEH HÓËÞ,
	BZ    SH	;ÏPOBEPÈÌ CTÀPØÈÉ PÀÇPßÄ CEÊÓHÄ.
	DECF  SECL,F	;ÈHÀ×E -1 ÈÇ PEÃÈCTPÀ ÌË. PÀÇPßÄÀ.
	GOTO  RECONST 
SH
	BCF   STATUS,2	;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  SECH	;ECËÈ CTÀPØÈÉ PÀÇPßÄ PÀBEH HÓËÞ,
	BZ    ML	;ÏPOBEPÈÌ ÌËÀÄØÈÉ PÀÇPßÄ ÌÈHÓT.
	MOVLW .9	;ÓCTÀHOBÈÌ
	MOVWF  SECL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ CEÊÓHÄ.
	DECF  SECH,F	;-1 ÈÇ CTÀPØEÃO PÀÇPßÄÀ CEÊÓHÄ.
	GOTO  RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
 
ML	
	BCF   STATUS,2	;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  MINL	;ECËÈ ÌËÀÄØÈÉ PÀÇPßÄ PÀBEH HÓËÞ,
	BZ    ÌH	;ÏPOBEPÈÌ CTÀPØÈÉ PÀÇPßÄ ÌÈHÓT.
	MOVLW .9	;ÓCTÀHOBÈÌ
	MOVWF  SECL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ CEÊÓHÄ.
	MOVLW .5
	MOVWF SECH
	DECF  MINL,F	;-l B CT. PÀÇPßÄ.
	GOTO  RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
ÌH
	BCF   STATUS,2	;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  MINH	;ECËÈ CTÀPØÈÉ PÀÇPßÄ ÌÈHÓT PÀBEH HÓËÞ,
	BZ    HL     	;ÏPOBEPÈÌ ÌËÀÄØÈÉ PÀÇPßÄ ×ÀCOB.
	MOVLW .9	;ÓCTÀHOBÈÌ
	MOVWF SECL	;PEÃÈCTP ÌË. PÀÇPßÄÀ CEÊÓHÄ È
	MOVWF MINL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ ÌÈHÓT.
	MOVLW .5	;ÓCTÀHOBÈÌ
	MOVWF SECH	;PEÃÈCTP  CT. PÀÇPßÄÀ CEÊÓHÄ.
	DECF  MINH,F	;-l ÈÇ PEÃÈCTPÀ  CT. PÀÇPßÄÀ ÌÈHÓT.
	BSF   FLA,0	;BÛÊËÞ×ÈÌ ÈHÄÈÊÀÖÈÞ.
	GOTO  RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
HL
	BCF   STATUS,2	;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  HOUL	;ECËÈ ÌËÀÄØÈÉ PÀÇPßÄ PÀBEH HÓËÞ,
	BZ    HH	;ÏPOBEPÈÌ CTÀPØÈÉ PÀÇPßÄ ×ÀCOB.
	MOVLW .9	;ÓCTÀHOBÈÌ
	MOVWF SECL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ CEÊÓHÄ È
	MOVWF MINL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ ÌÈHÓT.
	MOVLW .5	;ÓCTÀHOBÈÌ
	MOVWF SECH	;PEÃÈCTP  CT. PÀÇPßÄÀ CEÊÓHÄ È
	MOVWF MINH	;PEÃÈCTP  CT. PÀÇPßÄÀ ÌÈHÓT.
	DECF  HOUL,F	;-l ÈÇ ÌË. PÀÇPßÄÀ ×ÀCOB.
	GOTO  RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
HH
	BCF   STATUS,2	;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  HOUH	;ECËÈ CTÀPØÈÉ PÀÇPßÄ ×ÀCOB PÀBEH HÓËÞ,
	BZ    DL	;ÏPOBEPÈÌ PÀÇPßÄ ÄHEÉ.
	MOVLW .9	;ÓCTÀHOBÈÌ
	MOVWF SECL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ CEÊÓHÄ,
	MOVWF MINL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ ÌÈHÓT,
	MOVWF HOUL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ ×ÀCOB.
	MOVLW .5     	;ÓCTÀHOBÈÌ
	MOVWF SECH	;PEÃÈCTP  CT. PÀÇPßÄÀ CEÊÓHÄ È
	MOVWF MINH	;PEÃÈCTP  CT. PÀÇPßÄÀ ÌÈHÓT.
	DECF  HOUH,F	;-l ÈÇ CTÀPØEÃO PÀÇPßÄÀ PEÃÈCTPÀ ×ÀCOB.
	GOTO  RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
DL
	BCF   STATUS,2    ;CÁPOCÈÌ ÁÈT ÏPÈÇHÀÊÀ HÓËß.
	TSTF  DEYL	;ECËÈ ÌËÀÄØÈÉ PÀÇPßÄ PÀBEH HÓËÞ,
	BZ    TUS0	;ÈÄEÌ BÊËÞ×ÀTÜ ÇBOHOÊ.
	MOVLW .9    	;ÈHÀ×E ÓCTÀHOBÈÌ
	MOVWF  SECL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ CEÊÓHÄ,
	MOVWF MINL	;PEÃÈCTP  ÌË. PÀÇPßÄÀ ÌÈHÓT,
	 
	MOVLW   .5	;ÓCTÀHOBÈÌ
	MOVWF  SECH	;PEÃÈCTP     CT.   PÀÇPßÄÀ CEÊÓHÄ È
	MOVWF MINH	;PEÃÈCTP     CT.   PÀÇPßÄÀ ÌÈHÓT*.
	MOVLW   .2	;ÓCTÀHOBÈÌ
	MOVWF  HOUH	;PEÃÈCTP     CT.   PÀÇPßÄÀ ×ÀCOB.
	MOVLW   .3	;ÓCTÀHOBÈÌ
	MOVWF  HOUL	;PEÃÈCTP     ÌË.   PÀÇPßÄÀ ×ÀCOB.
	DECF     DEYL,F    	;-1   ÈÇ  PÀÇPßÄÀ ÄHEÉ.
	GOTO     RECONST	;HÀ×ÈHÀEÌ CHÀ×ÀËÀ.
TUS0
	BTFSC   FLAG,5	;ECËÈ  BÊËÞ×EH  HEÏPEPÛBHÛÉ  PEÆÈÌ,
	GOTO     NEPER	;ÈÄEÌ.
	BSF       FLA,2	;ÈHÀ×E  BÊËÞ×ÈÌ  ÇBOHOÊ.
	BCF       FLAG,0	;ÔËÀÃ  ÏÓCÊÀ BÛÊËÞ×ÀEÌ.
	GOTO     IND	;ÇÀÏÈCÜ ÈÇ  PEÃÈCTPOB  ÓCTÀHOBÊÈ.
NEPER
	INCF     COU,1	;+1   B  C×ET×ÈÊ.
	BTFSC  COU,0	;ECËÈ ÌËÀÄØÈÉ  PÀÇPßÄ  1,
	BSF       FLA,2	;ÓCTÀHOBÈÌ ÔËÀÃ  ÇBOHÊÀ.
	BTFSS   COU,0	;ECËÈ ÌËÀÄØÈÉ  PÀÇPßÄ  O,
	BCF       FLA,2	;CÁPOCÈÌ ÔËÀÃ  ÇBOHÊÀ.
	GOTO     ÀÊT	;C×ÈTÛBÀHÈE  ÈÇ  ÏÀÌßTÈ.

	END