diff --git a/chipdrivers.h b/chipdrivers.h
index 64c8845..c7fecd2 100644
--- a/chipdrivers.h
+++ b/chipdrivers.h
@@ -59,6 +59,8 @@
 int erase_82802ab(struct flashchip *flash);
 int erase_82802ab_block(struct flashchip *flash, unsigned int page, unsigned int pagesize);
 int write_82802ab(struct flashchip *flash, uint8_t *buf);
+void print_82802ab_status(uint8_t status);
+void write_page_82802ab(chipaddr bios, uint8_t *src, chipaddr dst, int page_size);
 
 /* jedec.c */
 uint8_t oddparity(uint8_t val);
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");
 	}
