diff --git a/m29f400bt.c b/m29f400bt.c
index 2ca72e4..cb55d76 100644
--- a/m29f400bt.c
+++ b/m29f400bt.c
@@ -22,9 +22,9 @@
 
 void protect_m29f400bt(volatile uint8_t *bios)
 {
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0xA0, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0xA0, bios + 0xAAA);
 
 	usleep(200);
 }
@@ -35,18 +35,18 @@
 	int i;
 
 	for (i = 0; i < page_size; i++) {
-		writeb(0xAA, bios + 0xAAA);
-		writeb(0x55, bios + 0x555);
-		writeb(0xA0, bios + 0xAAA);
+		chip_writeb(0xAA, bios + 0xAAA);
+		chip_writeb(0x55, bios + 0x555);
+		chip_writeb(0xA0, bios + 0xAAA);
 
 		/* transfer data from source to destination */
-		writeb(*src, dst);
+		chip_writeb(*src, dst);
 		//*(volatile char *) (bios) = 0xF0;
 		//usleep(5);
 		toggle_ready_jedec(dst);
 		printf
 		    ("Value in the flash at address %p = %#x, want %#x\n",
-		     (uint8_t *) (dst - bios), readb(dst), *src);
+		     (uint8_t *) (dst - bios), chip_readb(dst), *src);
 		dst++;
 		src++;
 	}
@@ -57,21 +57,21 @@
 	volatile uint8_t *bios = flash->virtual_memory;
 	uint8_t id1, id2;
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0x90, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0x90, bios + 0xAAA);
 
 	myusec_delay(10);
 
-	id1 = readb(bios);
+	id1 = chip_readb(bios);
 	/* The data sheet says id2 is at (bios + 0x01) and id2 listed in
 	 * flash.h does not match. It should be possible to use JEDEC probe.
 	 */
-	id2 = readb(bios + 0x02);
+	id2 = chip_readb(bios + 0x02);
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0xF0, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0xF0, bios + 0xAAA);
 
 	myusec_delay(10);
 
@@ -87,13 +87,13 @@
 {
 	volatile uint8_t *bios = flash->virtual_memory;
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0x80, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0x80, bios + 0xAAA);
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0x10, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0x10, bios + 0xAAA);
 
 	myusec_delay(10);
 	toggle_ready_jedec(bios);
@@ -104,14 +104,14 @@
 int block_erase_m29f400bt(volatile uint8_t *bios, volatile uint8_t *dst)
 {
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
-	writeb(0x80, bios + 0xAAA);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
+	chip_writeb(0x80, bios + 0xAAA);
 
-	writeb(0xAA, bios + 0xAAA);
-	writeb(0x55, bios + 0x555);
+	chip_writeb(0xAA, bios + 0xAAA);
+	chip_writeb(0x55, bios + 0x555);
 	//*(volatile uint8_t *) (bios + 0xAAA) = 0x10;
-	writeb(0x30, dst);
+	chip_writeb(0x30, dst);
 
 	myusec_delay(10);
 	toggle_ready_jedec(bios);
