#ifndef _eprom_
#define _eprom_
#define SDA (1 << 3) // P0.3
#define SCL (1 << 2) // P0.2
#define eprom_dir_sda_write() IODIR0 |= (1 << 3) // LCD Data Bus = Write
#define eprom_dir_clk_write() IODIR0 |= (1 << 2)
#define eprom_dir_sda_read() IODIR0 &= ~(1 << 3) // LCD Data Bus = Write
#define eprom_dir_clk_read() IODIR0 &= ~(1 << 2)
#define sda_set() IOSET0 |= (1 << 3)
#define scl_set() IOSET0 |= (1 << 2)
#define sda_clr() IOCLR0 |= (1 << 3)
#define scl_clr() IOCLR0 |= (1 << 2)
#define HIGH 0x01 // Value representing ON
#define LOW 0x00 // Value representing OFF
#define readaddress 161
#define writeaddress 160
//----------------------------------------------------------------------
// eprom Functions - Bit Banged
//----------------------------------------------------------------------
void eeprom_start(void); // Sends eprom Start Trasfer
void eeprom_stop(void); // Sends eprom Stop Trasfer
void eeprom_write(unsigned char input_data); // Writes data over the eprom
unsigned char eeprom_read(void); // Reads data from the eprom
// Sends a byte to the specified device
//------------------------------------------------------------------------------
// eprom Peripheral Function Prototypes
//------------------------------------------------------------------------------
void delaytime(unsigned int time_end); // To pause execution for pre-determined time
void eprom_memwrite(unsigned char memorylocation, unsigned char value ) ;
unsigned char eprom_memread(unsigned char memorylocation ) ;
#endif