? lcd.diff
Index: lcd.c
===================================================================
RCS file: /cvsroot/rockbox/firmware/drivers/lcd.c,v
retrieving revision 1.95
diff -u -b -r1.95 lcd.c
--- lcd.c	6 Sep 2002 12:30:30 -0000	1.95
+++ lcd.c	9 Sep 2002 16:23:37 -0000
@@ -1435,6 +1435,18 @@
     }
 }
 
+/**
+ * Rolls up the lcd display by the specified amount of lines.
+ * Lines that are rolled out over the top of the screen are
+ * rolled in from the bottom again. This is a hardware 
+ * remapping only and all operations on the lcd are affected.
+ * -> 
+ * @param int lines - The number of lines that are rolled. 
+ *  The value must be 0 <= pixels < LCD_HEIGHT.
+ */
+void lcd_v_roll(int lines) {
+    lcd_write(true, LCD_SET_DISPLAY_START_LINE | (lines & 0x3F));
+}
 
 /* -----------------------------------------------------------------
  * local variables:
Index: lcd.h
===================================================================
RCS file: /cvsroot/rockbox/firmware/drivers/lcd.h,v
retrieving revision 1.35
diff -u -b -r1.35 lcd.h
--- lcd.h	6 Sep 2002 12:30:30 -0000	1.35
+++ lcd.h	9 Sep 2002 16:23:38 -0000
@@ -115,6 +115,7 @@
 extern void lcd_drawpixel(int x, int y);
 extern void lcd_clearpixel(int x, int y);
 extern void lcd_invertpixel(int x, int y);
+extern void lcd_v_roll(int pixels) ;
 
 #endif /* CHARCELLS / BITMAP */
 

