diff --git a/flash_rom.c b/flash_rom.c
index b8ffeb0..13bb182 100644
--- a/flash_rom.c
+++ b/flash_rom.c
@@ -115,8 +115,7 @@
 			       flash->total_size * 1024, (unsigned long)size);
 		}
 		bios = mmap (0, size, PROT_WRITE | PROT_READ, MAP_SHARED,
-			     //fd_mem, (off_t) (0x100000000-size));
-			     fd_mem, (off_t) (0xffffffff-size+1));
+			     fd_mem, (off_t) (0xffffffff - size + 1));
 		if (bios == MAP_FAILED) {
 			perror("Error MMAP /dev/mem");
 			exit(1);
@@ -126,7 +125,7 @@
 
 		if (flash->probe(flash) == 1) {
 			printf ("%s found at physical address: 0x%lx\n",
-				flash->name, (0 - size));
+				flash->name, (0xffffffff - size + 1));
 			return flash;
 		}
 		munmap ((void *) bios, size);
diff --git a/sst28sf040.c b/sst28sf040.c
index ee49f79..c63f5fa 100644
--- a/sst28sf040.c
+++ b/sst28sf040.c
@@ -31,7 +31,7 @@
 
 #define AUTO_PG_ERASE1		0x20
 #define AUTO_PG_ERASE2		0xD0
-#define AUTO_PGRM			0x10
+#define AUTO_PGRM		0x10
 #define CHIP_ERASE		0x30
 #define RESET			0xFF
 #define READ_ID			0x90
diff --git a/sst39sf020.c b/sst39sf020.c
index fa35276..3d23adf 100644
--- a/sst39sf020.c
+++ b/sst39sf020.c
@@ -22,6 +22,8 @@
  * Reference:
  *	4 MEgabit (512K x 8) SuperFlash EEPROM, SST28SF040 data sheet
  *
+ * ToDo: Consilidated to standard JEDEC code.
+ *
  * $Id$
  */
 
@@ -37,34 +39,6 @@
 #define RESET			0xFF
 #define READ_ID			0x90
 
-static __inline__ void protect_39sf020 (volatile char * bios)
-{
-	/* ask compiler not to optimize this */
-	volatile unsigned char tmp;
-
-	tmp = *(volatile unsigned char *) (bios + 0x1823);
-	tmp = *(volatile unsigned char *) (bios + 0x1820);
-	tmp = *(volatile unsigned char *) (bios + 0x1822);
-	tmp = *(volatile unsigned char *) (bios + 0x0418);
-	tmp = *(volatile unsigned char *) (bios + 0x041B);
-	tmp = *(volatile unsigned char *) (bios + 0x0419);
-	tmp = *(volatile unsigned char *) (bios + 0x040A);
-}
-
-static __inline__ void unprotect_39sf020 (volatile char * bios)
-{
-	/* ask compiler not to optimize this */
-	volatile unsigned char tmp;
-
-	tmp = *(volatile unsigned char *) (bios + 0x1823);
-	tmp = *(volatile unsigned char *) (bios + 0x1820);
-	tmp = *(volatile unsigned char *) (bios + 0x1822);
-	tmp = *(volatile unsigned char *) (bios + 0x0418);
-	tmp = *(volatile unsigned char *) (bios + 0x041B);
-	tmp = *(volatile unsigned char *) (bios + 0x0419);
-	tmp = *(volatile unsigned char *) (bios + 0x041A);
-}
-
 static __inline__ int erase_sector_39sf020 (volatile char * bios, unsigned long address)
 {
 	*bios = AUTO_PG_ERASE1;
@@ -77,9 +51,9 @@
 }
 
 static __inline__ int write_sector_39sf020(volatile char * bios, 
-				       unsigned char * src,
-				       volatile unsigned char * dst, 
-				       unsigned int page_size)
+					   unsigned char * src,
+					   volatile unsigned char * dst, 
+					   unsigned int page_size)
 {
 	int i;
 	volatile char *Temp;
@@ -177,8 +151,8 @@
 	int total_size = flash->total_size * 1024, page_size = flash->page_size;
 	volatile char * bios = flash->virt_addr;
 
-//	unprotect_39sf020 (bios);
 	erase_39sf020(flash);
+
 	printf ("Programming Page: ");
 	for (i = 0; i < total_size/page_size; i++) {
 		/* erase the page before programming */
@@ -193,7 +167,5 @@
 	}
 	printf("\n");
 
-//	protect_39sf020 (bios);
-
 	return(0);
 }
diff --git a/sst49lf040.c b/sst49lf040.c
index 5f2503d..9f75485 100644
--- a/sst49lf040.c
+++ b/sst49lf040.c
@@ -21,6 +21,8 @@
  * Reference:
  *      4 MEgabit (512K x 8) SuperFlash EEPROM, SST49lF040 data sheet
  *
+ * ToDo: Consilidated to standard JEDEC code.
+ *
  * $Id$
  */
 #include <stdio.h>
@@ -59,7 +61,7 @@
 	myusec_delay(10);
         Temp  = bios + page; /* set up address to be the current sector */
         *Temp = 0x30;       /* write data 0x30 to the address       */
-	myusec_delay(25000);
+	myusec_delay(50000);
 	
 	/* wait for Toggle bit ready         */
 	toggle_ready_jedec(bios);
diff --git a/udelay.c b/udelay.c
index a6597e5..ad2fb4e 100644
--- a/udelay.c
+++ b/udelay.c
@@ -17,17 +17,14 @@
 	unsigned long timeusec;
 	struct timeval start, end;
 	int ok = 0;
-	void myusec_delay(int time);
 
 	printf("Setting up microsecond timing loop\n");
 	while (!ok) {
-		//fprintf(stderr, "Try %d\n", count);
 		gettimeofday(&start, 0);
 		myusec_delay(count);
 		gettimeofday(&end, 0);
 		timeusec = 1000000 * (end.tv_sec - start.tv_sec ) + 
 			(end.tv_usec - start.tv_usec);
-		//fprintf(stderr, "timeusec is %d\n", timeusec);
 		count *= 2;
 		if (timeusec < 1000000/4)
 			continue;
diff --git a/w49f002u.c b/w49f002u.c
index 4d5d16b..28a94ab 100644
--- a/w49f002u.c
+++ b/w49f002u.c
@@ -22,6 +22,8 @@
  * Reference:
  *	W49F002U data sheet
  *
+ * ToDo: Consilidated to standard JEDEC code.
+ *
  * $Id$
  */
 
@@ -80,7 +82,6 @@
 	volatile char * bios = flash->virt_addr;
 	volatile char * dst = bios;
 
-	myusec_delay(10);
 	erase_49f002(flash);
 
 	printf ("Programming Page: ");
