aboutsummaryrefslogtreecommitdiffstats
path: root/T6963.c
diff options
context:
space:
mode:
authorreinelt <>2003-07-24 04:48:09 +0000
committerreinelt <>2003-07-24 04:48:09 +0000
commit80ad6d155c1b974590f0c96b6291b0baa70b09d5 (patch)
treeb53a7102debdc89d8fe44e0c6b913019d78f60bc /T6963.c
parenta7a6b96ef3ef6a0abc6790addb8dc298ae7bb693 (diff)
downloadlcd4linux-80ad6d155c1b974590f0c96b6291b0baa70b09d5.tar.gz
[lcd4linux @ 2003-07-24 04:48:09 by reinelt]
'soft clear' needed for virtual rows
Diffstat (limited to 'T6963.c')
-rw-r--r--T6963.c36
1 files changed, 21 insertions, 15 deletions
diff --git a/T6963.c b/T6963.c
index e7b7263..22125f3 100644
--- a/T6963.c
+++ b/T6963.c
@@ -1,4 +1,4 @@
-/* $Id: T6963.c,v 1.6 2003/04/07 06:03:00 reinelt Exp $
+/* $Id: T6963.c,v 1.7 2003/07/24 04:48:09 reinelt Exp $
*
* driver for display modules based on the Toshiba T6963 chip
*
@@ -20,6 +20,9 @@
*
*
* $Log: T6963.c,v $
+ * Revision 1.7 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.6 2003/04/07 06:03:00 reinelt
* further parallel port abstraction
*
@@ -290,23 +293,26 @@ static void T6_memcpy(unsigned short addr, unsigned char *data, int len)
}
-int T6_clear (void)
+int T6_clear (int full)
{
int rows;
- rows=(Lcd.rows>8 ? 8 : Lcd.rows);
-
- T6_memset(0x0000, 0, Lcd.cols*rows); // clear text area
- T6_memset(0x0200, 0, Lcd.cols*rows*8); // clear graphic area
-
- if (Lcd.rows>8) {
- T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows)); // clear text area #2
- T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8); // clear graphic area #2
+ if (full) {
+
+ rows=(Lcd.rows>8 ? 8 : Lcd.rows);
+
+ T6_memset(0x0000, 0, Lcd.cols*rows); // clear text area
+ T6_memset(0x0200, 0, Lcd.cols*rows*8); // clear graphic area
+
+ if (Lcd.rows>8) {
+ T6_memset(0x8000, 0, Lcd.cols*(Lcd.rows-rows)); // clear text area #2
+ T6_memset(0x8200, 0, Lcd.cols*(Lcd.rows-rows)*8); // clear graphic area #2
+ }
+
+ memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
+ memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2));
}
-
- memset(Buffer1,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer1));
- memset(Buffer2,0,Lcd.cols*Lcd.rows*Lcd.yres*sizeof(*Buffer2));
-
+
return pix_clear();
}
@@ -363,7 +369,7 @@ int T6_init (LCD *Self)
T6_write_cmd (0xa0); // Set Cursor Pattern: 1 line cursor
T6_send_word (0x21, 0x0000); // Set Cursor Pointer to (0,0)
- T6_clear();
+ T6_clear(1);
return 0;
}