diff --git a/sharplhf00l04.c b/sharplhf00l04.c
index d5ab38c..659f129 100644
--- a/sharplhf00l04.c
+++ b/sharplhf00l04.c
@@ -22,18 +22,6 @@
 #include "flash.h"
 #include "chipdrivers.h"
 
-// I need that Berkeley bit-map printer
-void print_lhf00l04_status(uint8_t status)
-{
-	printf("%s", status & 0x80 ? "Ready:" : "Busy:");
-	printf("%s", status & 0x40 ? "BE SUSPEND:" : "BE RUN/FINISH:");
-	printf("%s", status & 0x20 ? "BE ERROR:" : "BE OK:");
-	printf("%s", status & 0x10 ? "PROG ERR:" : "PROG OK:");
-	printf("%s", status & 0x8 ? "VP ERR:" : "VPP OK:");
-	printf("%s", status & 0x4 ? "PROG SUSPEND:" : "PROG RUN/FINISH:");
-	printf("%s", status & 0x2 ? "WP|TBL#|WP#,ABORT:" : "UNLOCK:");
-}
-
 /* FIXME: The datasheet is unclear whether we should use toggle_ready_jedec
  * or wait_82802ab.
  */
@@ -48,7 +36,7 @@
 	chip_writeb(0x50, bios);
 	printf("Erase at 0x%lx\n", bios);
 	status = wait_82802ab(flash->virtual_memory);
-	print_lhf00l04_status(status);
+	print_82802ab_status(status);
 	// clear write protect
 	printf("write protect is at 0x%lx\n", (wrprotect));
 	printf("write protect is 0x%x\n", chip_readb(wrprotect));
@@ -61,7 +49,7 @@
 	programmer_delay(10);
 	// now let's see what the register is
 	status = wait_82802ab(flash->virtual_memory);
-	print_lhf00l04_status(status);
+	print_82802ab_status(status);
 	printf("DONE BLOCK 0x%x\n", blockaddr);
 
 	if (check_erased_range(flash, blockaddr, blocklen)) {
@@ -71,19 +59,6 @@
 	return 0;
 }
 
-void write_page_lhf00l04(chipaddr bios, uint8_t *src,
-			 chipaddr dst, int page_size)
-{
-	int i;
-
-	for (i = 0; i < page_size; i++) {
-		/* transfer data from source to destination */
-		chip_writeb(0x40, dst);
-		chip_writeb(*src++, dst++);
-		wait_82802ab(bios);
-	}
-}
-
 int write_lhf00l04(struct flashchip *flash, uint8_t *buf)
 {
 	int i;
@@ -98,7 +73,7 @@
 	printf("Programming page: ");
 	for (i = 0; i < total_size / page_size; i++) {
 		printf("%04d at address: 0x%08x", i, i * page_size);
-		write_page_lhf00l04(bios, buf + i * page_size,
+		write_page_82802ab(bios, buf + i * page_size,
 				    bios + i * page_size, page_size);
 		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");
 	}
