aboutsummaryrefslogtreecommitdiffstats
path: root/T6963.c
diff options
context:
space:
mode:
authorreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2003-07-24 04:48:09 +0000
committerreinelt <reinelt@3ae390bd-cb1e-0410-b409-cd5a39f66f1f>2003-07-24 04:48:09 +0000
commit7ed5b7a1b4bc3cc31aa89bba015c3a5e856b2ad8 (patch)
treeb53a7102debdc89d8fe44e0c6b913019d78f60bc /T6963.c
parent93be7266dd3f05b297c7b25920d6362452a447f9 (diff)
downloadlcd4linux-7ed5b7a1b4bc3cc31aa89bba015c3a5e856b2ad8.tar.gz
[lcd4linux @ 2003-07-24 04:48:09 by reinelt]
'soft clear' needed for virtual rows git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@202 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
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;
}