;***** WARNING PLEASE EXTRACT THE EQUATES YOU NEED ****
;***** OTHERWISE YOU WILL RUN INTO PROBLEMS WITH CONFLICTS ****




;**********************************************************
; HERE IS WHERE ALL THE PROGRAM EQUATES AND DEFINES
; ARE ALL STORED. THE PIC'S GENERAL EQUATES ARE
; STORED IN THE MICROCHIP'S P16CXX FILE
;**********************************************************

; MAIN PROG EQUATES
TEMP_MAIN     EQU 0X20         ;TEMP STORAGE FOR MAIN PROG
GENERAL       EQU 0X21         ;
BSHADOW       EQU 0X22         ;PORT B SHADOW
B2SHADOW      EQU 0X23         ;ANOTHER SHADOW
DISP_TEMP     EQU 0X24         ;DISPLAY COUNTER
insflag       equ 0x25

; DELAY EQUATES
ADCNT         EQU 0X22         ;COUNTER FOR A-D
ADCNT2        EQU 0X23         ;COUNTER FOR A-D
ADCNT3        EQU 0X24         ;COUNTER FOR A-D

CNT           EQU 0X25         ;ADDRESS FOR COUNTER
CNT2          EQU 0X26         ;ADDRESS FOR COUNTER2
CNT3          EQU 0X27         ;ADDRESS FOR COUNTER3
CNT4          EQU 0X28         ;ADDRESS FOR COUNTER4
temp_cnt      equ 0x29         ;temp store of cnt
temp_cnt2     equ 0x2a         ;temp store of cnt2
temp_cnt3     equ 0x2b         ;temp store of cnt3
temp_cnt4     equ 0x2c         ;temp store of cnt4


;SERIAL DEFINITIONS AND EQUATES
#DEFINE      TALK    PORTC,1   ;ENABLE POWER FOR MAX232
#DEFINE      SWTXPIN PORTC,2   ;SW TX PIN
#DEFINE      SWRXPIN PORTA,4

SERIAL       EQU 0X31          ;SERIAL FLAG


; SERIAL FLAG BIT DEFINITIONS
; BIT 0 WHEN SET, TX IS IN OPERATION
; BIT 1 WHEN SET, RX IS IN OPERATION
; BIT 2 WHEN CLEAR, START BIT FLAG
; BIT 3 WHEN SET, STOP BIT FLAG

TXF          EQU 0X00          ;TXFLAG BIT
RXF          EQU 0X01          ;RXFLAG BIT
STRT         EQU 0X02          ;STRTFLAG BIT
STP          EQU 0X03          ;STPFLAG BIT
STP2         EQU 0X04          ;ANOTHER STOP BIT FLAG
CLR          EQU 0X05          ;REPORTS THAT THE SERIAL PORT IS CLEAR


BITS         EQU 0X32          ;NUMBER OF BITS IN SERIAL
ASHADOW      EQU 0X33          ;PORT A SHADOW
SWRXREG      EQU 0X34          ;RECEIVER REGISTER
SWTXREG      EQU 0X35          ;TRANSMIT REGISTER
PARITY       EQU 0X36          ;PARITY BIT REG
SERDATA      EQU 0X37          ; ''



; KEYPAD EQUATES
TEMP_KEY    EQU 0X30           ;ADDRESS FOR STORAGE
COL         EQU 0X31           ;COLUMN ADDRESS
KEY_PRESSED EQU 0X32           ;KEY VALUE OUTPUT
temp_key2   equ 0x33           ;another storage for the key pad.

; LCD EQUATES AND DEFINES
#DEFINE     DDRE   TRISA,4     ;DATA DIRECTION
#DEFINE     DDRRS  TRISA,5     ;DATA DIRECTION
#DEFINE     E      PORTA,4     ;ENABLE LINE ON LCD
#DEFINE     RS     PORTA,5     ;INSTRUCTION/DATA SELECT
TEMP_LCD    EQU 0X3A           ;STORAGE FOR LCD
LCD         EQU PORTD          ;DATA PORT
CLRSCR      EQU B'00000001'    ;COMMAND FOR CLRSCR
HOME        EQU B'00000010'    ;SENDS CURSOR TO HOME
ON          EQU B'00001100'    ;TURNS ON THE DISPLAY
OFF         EQU B'00001000'    ;TURNS THE DISPLAY OFF
LEFT        EQU B'00011000'    ;LEFT SHIFT
RIGHT       EQU B'00011100'    ;RIGHT SHIFT
LIN2        EQU B'11000000'    ;SETS TO LINE 2
;*********************************************
; A FLAG FOR DETECTING WHICH LINE THE 
; LCD IS ON IS STORED ON FLAG,1.
; A ZERO HERE IS FOR LINE 1 AND A 1 IS
; FOR LINE 2. IT ALSO TELLS THE MAIN 
; PROGRAM WHICH SCREEN TO DISPLAY.
; FLAG BIT 2 IS SCREEN 2, BIT 3 IS
; SCREEN 3 AND SO ON.
;*********************************************
FLAG        EQU 0X40           ;LCD FLAGS
p2_flag     equ 0x41           ;flag for page2




;IIC EQUATES

ACK EQU .1
#define    sda portE,1         ;data line
#define    scl portE,0         ;clock line
#define    sda_tris trisE,1    ;data line tris
#define    scl_tris trisE,0    ;clock line tris

counter    equ 0x5A
TX_BUFFER  equ 0x5B
rx_buffer  EQU 0X5C
DTMF_ADDRESS EQU B'01001000'   ;SET UP TO ALWAYS BE WRITTEN TO
C73wrtadd  equ b'10000110'     ;write info to the processor
C73rdadd   equ b'10000111'     ;read from the processor
EEPROMWR   equ b'10100000'     ;write info to the EEPROM
EEPROMRE   equ b'10100001'     ;read from the EEPROM
hADD       equ 0x5D            ;HIGH BYTE ADDRESS
LADDRESS   EQU 0X58            ;LOW BYTE ADDRESS
DATA_IN    EQU 0X5F            ;DATA IN
DATA_OUT   EQU 0X59            ;DATA OUT
record     equ 'R'             ;send the command to record
alarm      equ 'A'             ;send command to alarm the owner
HOOKUP     EQU 'U'             ;HOOK UP
HOOKDOWN   EQU 'D'             ;HOOK DOWN
VALID      EQU .5              ;VALID FLAG

SDAUP MACRO
BSF STATUS,RP0                 ;BANK ONE
BSF SDA_TRIS                   ;UP
BCF STATUS,RP0                 ;BANK ZERO
ENDM

SDADOWN MACRO
BSF STATUS,RP0                 ;BANK ONE
BCF SDA_TRIS                   ;UP
BCF STATUS,RP0                 ;BANK ZERO
ENDM


SCLUP MACRO
BSF STATUS,RP0                 ;BANK ONE
BSF SCL_TRIS                   ;UP
BCF STATUS,RP0                 ;BANK ZERO
ENDM

SCLDOWN MACRO
BSF STATUS,RP0                 ;BANK ONE
BCF SCL_TRIS                   ;UP
BCF STATUS,RP0                 ;BANK ZERO
ENDM