diff --git a/82802ab.c b/82802ab.c
index a8598d5..1c98f5c 100644
--- a/82802ab.c
+++ b/82802ab.c
@@ -27,46 +27,6 @@
 #include <stdint.h>
 #include "flash.h"
 
-void toggle_ready_82802ab(volatile uint8_t *dst)
-{
-	unsigned int i = 0;
-	uint8_t tmp1, tmp2;
-
-	tmp1 = *dst & 0x40;
-
-	while (i++ < 0xFFFFFF) {
-		tmp2 = *dst & 0x40;
-		if (tmp1 == tmp2) {
-			break;
-		}
-		tmp1 = tmp2;
-	}
-}
-
-void data_polling_82802ab(volatile uint8_t *dst, uint8_t data)
-{
-	unsigned int i = 0;
-	uint8_t tmp;
-
-	data &= 0x80;
-
-	while (i++ < 0xFFFFFF) {
-		tmp = *dst & 0x80;
-		if (tmp == data) {
-			break;
-		}
-	}
-}
-
-void protect_82802ab(volatile uint8_t *bios)
-{
-	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
-	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
-	*(volatile uint8_t *)(bios + 0x5555) = 0xA0;
-
-	usleep(200);
-}
-
 // I need that Berkeley bit-map printer
 void print_82802ab_status(uint8_t status)
 {
@@ -215,6 +175,6 @@
 		printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
 	}
 	printf("\n");
-	protect_82802ab(bios);
+	protect_jedec(bios);
 	return (0);
 }
diff --git a/m29f400bt.c b/m29f400bt.c
index e33c106..eb97591 100644
--- a/m29f400bt.c
+++ b/m29f400bt.c
@@ -25,37 +25,6 @@
 
 #include "flash.h"
 
-void toggle_ready_m29f400bt(volatile uint8_t *dst)
-{
-	unsigned int i = 0;
-	uint8_t tmp1, tmp2;
-
-	tmp1 = *dst & 0x40;
-
-	while (i++ < 0xFFFFFF) {
-		tmp2 = *dst & 0x40;
-		if (tmp1 == tmp2) {
-			break;
-		}
-		tmp1 = tmp2;
-	}
-}
-
-void data_polling_m29f400bt(volatile uint8_t *dst, uint8_t data)
-{
-	unsigned int i = 0;
-	uint8_t tmp;
-
-	data &= 0x80;
-
-	while (i++ < 0xFFFFFF) {
-		tmp = *dst & 0x80;
-		if (tmp == data) {
-			break;
-		}
-	}
-}
-
 void protect_m29f400bt(volatile uint8_t *bios)
 {
 	*(volatile uint8_t *)(bios + 0xAAA) = 0xAA;
@@ -79,7 +48,7 @@
 		*dst = *src;
 		//*(volatile char *) (bios) = 0xF0;
 		//usleep(5);
-		toggle_ready_m29f400bt(dst);
+		toggle_ready_jedec(dst);
 		printf
 		    ("Value in the flash at address %p = %#x, want %#x\n",
 		     (uint8_t *) (dst - bios), *dst, *src);
@@ -129,7 +98,7 @@
 	*(volatile uint8_t *)(bios + 0xAAA) = 0x10;
 
 	myusec_delay(10);
-	toggle_ready_m29f400bt(bios);
+	toggle_ready_jedec(bios);
 
 	return (0);
 }
@@ -147,7 +116,7 @@
 	*dst = 0x30;
 
 	myusec_delay(10);
-	toggle_ready_m29f400bt(bios);
+	toggle_ready_jedec(bios);
 
 	return (0);
 }
diff --git a/sharplhf00l04.c b/sharplhf00l04.c
index 2616611..1c93cc6 100644
--- a/sharplhf00l04.c
+++ b/sharplhf00l04.c
@@ -26,46 +26,6 @@
 #include <stdlib.h>
 #include "flash.h"
 
-void toggle_ready_lhf00l04(volatile uint8_t *dst)
-{
-	unsigned int i = 0;
-	uint8_t tmp1, tmp2;
-
-	tmp1 = *dst & 0x40;
-
-	while (i++ < 0xFFFFFF) {
-		tmp2 = *dst & 0x40;
-		if (tmp1 == tmp2) {
-			break;
-		}
-		tmp1 = tmp2;
-	}
-}
-
-void data_polling_lhf00l04(volatile uint8_t *dst, uint8_t data)
-{
-	unsigned int i = 0;
-	uint8_t tmp;
-
-	data &= 0x80;
-
-	while (i++ < 0xFFFFFF) {
-		tmp = *dst & 0x80;
-		if (tmp == data) {
-			break;
-		}
-	}
-}
-
-void protect_lhf00l04(volatile uint8_t *bios)
-{
-	*(volatile uint8_t *)(bios + 0x5555) = 0xAA;
-	*(volatile uint8_t *)(bios + 0x2AAA) = 0x55;
-	*(volatile uint8_t *)(bios + 0x5555) = 0xA0;
-
-	usleep(200);
-}
-
 // I need that Berkeley bit-map printer
 void print_lhf00l04_status(uint8_t status)
 {
@@ -217,6 +177,6 @@
 		printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
 	}
 	printf("\n");
-	protect_lhf00l04(bios);
+	protect_jedec(bios);
 	return (0);
 }
