;;wwwpic2.inc
;; include file for wwwpic2 project

;;========================================================================
;; settings
;;========================================================================

QUARTZ_FREQ             equ	10000000

;; soft uart defines
RS_BAUD                 equ	19200	; baud rate
RS_DATA                 equ	8	;  number of data bits
RS_TICKS                equ	(((QUARTZ_FREQ/4)/RS_BAUD)+1); add one because
				 ; of fractions see _delay_x_9 for details

B_RS232_RxD		equ	0	; bit 0 on PORTB (RB0)
B_RS232_TxD		equ	3	; bit 3 on PORTA (RA3)
B_RS232_CTS		equ	2	; bit 2 on PORTA (RA2)

;; IP defines
ADDR_MYSELF_0           equ	192	; 192.168.2.2 - private net addr
ADDR_MYSELF_1		equ	168
ADDR_MYSELF_2           equ	2
ADDR_MYSELF_3           equ	2

;; TCP defines
TCP_PORT_HTTP           equ	80	; 1..255

TCP_RCV_WINDOW          equ	128;!sic!; [non-volatile]
TCP_SND_WINDOW          equ	128	; [non-volatile]

;; Filesystem defines
FS_UNIT_SIZE            equ	128	; [non-volatile]
FS_ROOT_DIR_ENTRIES     equ	8	; min 2: INDEX and ERROR.

FS_USE_INTERNAL_ROM     equ	1
FS_INTERNAL_ROM_UNITS   equ	4	; number of 128-byte pages
FS_USE_INTERNAL_EEPROM  equ	0	;

FS_USE_EXTERNAL_ROM     equ	0

;; Bits for flags
B_HTTP_STATE_0		equ	5	; in TCPS_FLAG
B_HTTP_STATE_1		equ	6	; in TCPS_FLAG
B_TCP_ONLINE		equ	7	; in TCPS_FLAG socket data valid

; discard data flag - when set slip recive routines simply discards data
B_SLIP_OUTPKT		equ	7	;
; escape flag set when previous char was a slip escape char
B_SLIP_ESCAPE		equ	6	;


;;========================================================================
;; special macros
;;========================================================================

;;transmits given character
TXLW	macro	value
	movlw	value
	call	_tx
	endm

;;sends a slip escaped char
SLITXLW	macro	value
	movlw	value
	call	_slitx
	endm

SUM0	macro	value
__TMPSUM set (((value)+((value) >> 16)) >> 8)
	movlw	(__TMPSUM & 0xff)
	ENDM

SUM1 MACRO value
__TMPSUM set (((value)+((value) >> 16)) >> 0)
    movlw (__TMPSUM & 0xff)
	endm

;;========================================================================
;; code macros
;;========================================================================

;; branch if bit clear
brclr	macro	reg,bit,dest_addr
	btfss	reg,bit
	goto	dest_addr
	endm


;branch if bit set
brset	macro	reg,bit,dest_addr
	btfsc	reg,bit
	goto	dest_addr
	endm


;;replace us!

;bit ;; skip if bit==0
skip0 macro reg,bit
	btfsc     reg,bit
	endm

;bit ;; skip if bit==1
skip1 macro reg,bit
	btfss     reg,bit
	endm

skipc	macro	; skip if carry
	btfss	STATUS,C
	endm

skipnc	macro	; skip if not carry
	btfsc	STATUS,C
	endm

skipz	macro	; skip if zero
	btfss	STATUS,Z
	endm

skipnz	macro	; skip if not zero
	btfsc	STATUS,Z
	endm


syntax highlighted by Code2HTML, v. 0.9