isl1208 rtc arduino library wanted

Greetings all, I am interested in someone writing a simple arduino library for the isl1208 for personal use, available to anyone who might want it also. I will try to provide as much information as i can. This is a personal favorite of mine due to the alarm/int, and greater accuracy than the 1307. Thank you in advance.

Datasheet here:
http://www.intersil.com/content/dam/Intersil/documents/isl1/isl1208.pdf

I came up with the following code from the datasheet, but i am not skilled at coding so please forgive any errors that may be really obvious to the trained eye. I’m willing to send a breakout board to an established coder, thank you.

edit 2.23.2015 corrected code. 24 hour clock example with alarm every minute.

//device isl1208 address 0x6F
#include <Wire.h>
#include <avr/sleep.h>
#include <avr/power.h>
#include <avr/interrupt.h>
byte seconds, hours, minutes, date, months, years, statusReg;
const unsigned char RTC_ADDRESS = 0x6F;

void setup () {
  pinMode(2, INPUT);
  digitalWrite(2,HIGH);
  attachInterrupt(0, alarmTriggered, FALLING); 
  interrupts();
  delay(50);
  Serial.begin(9600);
  Wire.begin();

  Wire.beginTransmission(RTC_ADDRESS); 
  Wire.write(0x07); //status register
  Wire.write(0x90);  //
  Wire.endTransmission();

  /*readStatusReg(statusReg);
  Serial.print(statusReg,HEX); //should be 144/0x90
  Serial.println("h - status register");*/

/*
  //alarm setup
  Wire.beginTransmission(RTC_ADDRESS); 
  Wire.write(0x08); //alarm register
  Wire.write(0xD0); 
  Wire.endTransmission();
  Wire.beginTransmission(RTC_ADDRESS); 
  Wire.write(0x0c); //seconds alarm register
  Wire.write(0xB0); //secs
  Wire.endTransmission(); */
  
   
  /*
// set time
   Wire.beginTransmission(RTC_ADDRESS); 
   Wire.write(0x00); //seconds register
   Wire.write(decToBcd(30)); //secs
   Wire.write(decToBcd(05));//min 
   Wire.write(decToBcd(15) | 0x80); //hour - 24 hour mode
   Wire.write(decToBcd(23)); //date 
   Wire.write(decToBcd(02)); //month
   Wire.write(decToBcd(15)); //year
   Wire.endTransmission();
   Wire.beginTransmission(RTC_ADDRESS);
   Wire.write(0x07); //status reg addr
   Wire.endTransmission();
   readStatusReg(statusReg);  */
   
}  

void loop () {
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.write(0x00); //status reg addr
  Wire.endTransmission();
    Wire.requestFrom(RTC_ADDRESS,6); // now get 6 bytes of data...
    seconds=Wire.read();
    minutes=Wire.read();
    hours=Wire.read() ; 
    date=Wire.read();
    months=Wire.read();
    years=Wire.read();
    hours=bcdToDec(hours & 0x7F);
    minutes=bcdToDec(minutes);
    seconds=bcdToDec(seconds);
 //Serial.print(hours/10%10);
 //Serial.print(hours%10);
  Serial.print(hours);
  Serial.print(":");
  Serial.print(minutes/10%10);
  Serial.print(minutes%10);
  Serial.print(".");
  Serial.print(seconds/10%10);
  Serial.println(seconds%10);
  Serial.print(bcdToDec(months));
  Serial.print('/');
  Serial.print(bcdToDec(date));
  Serial.print('/');
  Serial.println(bcdToDec(years));
  delay(1000);

}

byte readStatusReg(byte val){

  Wire.beginTransmission(RTC_ADDRESS);
  Wire.write(0x07); // read status reg to clr bits
  Wire.endTransmission();
  Wire.requestFrom(RTC_ADDRESS,1); // now get the byte of data...
  statusReg=Wire.read();
  return(statusReg);

}


byte bcdToDec(byte val)
{
  return ( (val/16*10) + (val%16) );
}

byte decToBcd(byte val)
{
  return ( (val/10*16) + (val%10) );
}

void alarmTriggered()
{
  Serial.println("** ALARM WENT OFF! **");

}