;
; Definice registru a zakladnich maker pro 16C84
;
		processor	16C84
		radix	D

__16C84__:	; Priznak modulu 16C84

; Definice registru

IND0		equ	00H	; 0&1 Pristup na neprimou adresu
TMR0		equ	01H	; 0   Real Time clock counter
PCL		equ	02H	; 0&1 Spodni cast PC
STATUS		equ	03H	; 0&1 Stavove bity
_CARRY				equ	0
_DC				equ	1
_ZERO				equ	2
_PD				equ	3
_TO				equ	4
_RP0				equ	5
_RP1				equ	6
_IRP				equ	7
FSR		equ	04H	; 0&1 Ukazatel pro neprime adresovani
PORTA		equ	05H	; 0&1 Data a rizeni portu A
PORTB		equ	06H	; 0&1 Data a rizeni portu B
EEDATA_0	equ	08H	; 0   Data EEPROM
EECON1_1	equ	08H	;   1 Rizeni EEPROM
_EERD				equ	0
_EEWR				equ	1
_EEWREN				equ	2
_EEWRERR			equ	3
_EEIF				equ	4
EEADR_0		equ	09H	; 0   Adresa EEPROM
EECON2_1	equ	09H	;   1 Aktivacni pseudoregistr
PCLATH		equ	0AH	; 0&1 Horni cast PC pro move
INTCON		equ	0BH	; 0&1 Rizeni preruseni
_RBIF				equ	0	;
_INTF				equ	1
_T0IF				equ	2
_RBIE				equ	3
_INTE				equ	4
_T0IE				equ	5
_EEIE				equ	6
_GIE				equ	7

page0	macro
	bcf	STATUS,_RP0
	endm

page1	macro
	bsf	STATUS,_RP0
	endm
;
; Sada maker pro porovnani a skoky
;

;--- Compare ---
CMP	macro	ZNAK, PROCEDURA		; if W=ZNAK then goto PROCEDURA
	xorlw	ZNAK			; if W#ZNAK then zachovej W a neskakej
	btfsc	STATUS,_ZERO
	goto	PROCEDURA
	xorlw	ZNAK
	endm

;--- Skip if Carry ---
SC	macro
	btfss	STATUS,_CARRY
	endm

;--- Skip if not Carry ---
SNC	macro
	btfsc	STATUS,_CARRY
	endm

;--- Skip if Zero ---
SZ	macro
	btfss	STATUS,_ZERO
	endm

;--- Skip if not Zero ---
SNZ	macro
	btfsc	STATUS,_ZERO
	endm

;--- Skip if Borrow ( Negative ) --- ( po odecitani )
SB	macro
	btsfsc	STATUS,_CARRY
	endm
SN	macro
	btfsc	STATUS,_CARRY
	endm

;--- Skip if not Borrow ( Positive ) --- ( po odecitani )
SNB	macro
	btfss	STATUS,_CARRY
	endm
SP	macro
	btfss	STATUS,_CARRY
	endm

	cblock	0CH		; Prvni volny registr
	endc
