-/* $Id: BeckmannEgle.c,v 1.12 2003/02/22 07:53:09 reinelt Exp $
+/* $Id: BeckmannEgle.c,v 1.13 2003/07/24 04:48:09 reinelt Exp $
*
* driver for Beckmann+Egle mini terminals
*
*
*
* $Log: BeckmannEgle.c,v $
+ * Revision 1.13 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.12 2003/02/22 07:53:09 reinelt
* cfg_get(key,defval)
*
}
-int BE_clear (void)
+int BE_clear (int full)
{
int row, col;
bar_clear();
- BE_write ("\033&#", 3);
+ if (full)
+ BE_write ("\033&#", 3);
+
return 0;
}
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
bar_add_segment(255,255,255,255); // ASCII 255 = block
- BE_clear();
+ BE_clear(1);
return 0;
}
-/* $Id: Crystalfontz.c,v 1.9 2003/02/22 07:53:09 reinelt Exp $
+/* $Id: Crystalfontz.c,v 1.10 2003/07/24 04:48:09 reinelt Exp $
*
* driver for display modules from Crystalfontz
*
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Log: Crystalfontz.c,v $
+ * Revision 1.10 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.9 2003/02/22 07:53:09 reinelt
* cfg_get(key,defval)
*
return 0;
}
-int cryfonclear() {
+int cryfonclear(int full) {
memset(Txtbuf,' ',tdim);
memset(Barbuf,0,bdim);
return 0;
-/* $Id: Cwlinux.c,v 1.8 2003/05/19 05:55:17 reinelt Exp $
+/* $Id: Cwlinux.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
*
* driver for Cwlinux serial display modules
*
*
*
* $Log: Cwlinux.c,v $
+ * Revision 1.9 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.8 2003/05/19 05:55:17 reinelt
* Cwlinux sleep optimization
*
}
-int CW_clear(void)
+int CW_clear(int full)
{
int row, col;
bar_clear();
+ if (full) {
#if 0
- CW_write("\376X\375",3);
+ CW_write("\376X\375",3);
#else
- // for some mysterious reason, we have to sleep after
- // the command _and_ after the CMD_END...
- usleep(20);
- CW_write("\376X",2);
- usleep(20);
- CW_write("\375",1);
- usleep(20);
+ // for some mysterious reason, we have to sleep after
+ // the command _and_ after the CMD_END...
+ usleep(20);
+ CW_write("\376X",2);
+ usleep(20);
+ CW_write("\375",1);
+ usleep(20);
#endif
+ }
return 0;
}
info ("Cwlinux Firmware %d.%d", (int)buffer[0], (int)buffer[1]);
#endif
- CW_clear();
+ CW_clear(1);
// auto line wrap off
CW_write ("\376D\375", 3);
-/* $Id: HD44780.c,v 1.28 2003/04/07 06:02:58 reinelt Exp $
+/* $Id: HD44780.c,v 1.29 2003/07/24 04:48:09 reinelt Exp $
*
* driver for display modules based on the HD44780 chip
*
*
*
* $Log: HD44780.c,v $
+ * Revision 1.29 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.28 2003/04/07 06:02:58 reinelt
* further parallel port abstraction
*
}
-int HD_clear (void)
+int HD_clear (int full)
{
int row, col;
bar_clear();
GPO=0;
- HD_setGPO (GPO); // All GPO's off
- HD_command (0x01, 1640); // clear display
+
+ if (full) {
+ HD_command (0x01, 1640); // clear display
+ HD_setGPO (GPO); // All GPO's off
+ }
+
return 0;
}
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
bar_add_segment(255,255,255,255); // ASCII 255 = block
- HD_clear();
+ HD_clear(1);
return 0;
}
-/* $Id: M50530.c,v 1.8 2003/04/07 06:02:59 reinelt Exp $
+/* $Id: M50530.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
*
* driver for display modules based on the M50530 chip
*
*
*
* $Log: M50530.c,v $
+ * Revision 1.9 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.8 2003/04/07 06:02:59 reinelt
* further parallel port abstraction
*
}
-int M5_clear (void)
+int M5_clear (int full)
{
int row, col;
bar_clear();
GPO=0;
- M5_setGPO (GPO); // All GPO's off
- M5_command (0x0001, 1250); // clear display
+ if (full) {
+ M5_command (0x0001, 1250); // clear display
+ M5_setGPO (GPO); // All GPO's off
+ }
+
return 0;
}
M5_command (0x0020, 20); // set display mode
M5_command (0x0050, 20); // set entry mode
M5_command (0x0030, 20); // set display mode
- M5_command (0x0001, 1250); // clear display
bar_init(rows, cols, XRES, YRES, CHARS);
bar_add_segment(0,0,255,32); // ASCII 32 = blank
- M5_clear();
+ M5_clear(1);
return 0;
}
-/* $Id: MatrixOrbital.c,v 1.27 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: MatrixOrbital.c,v 1.28 2003/07/24 04:48:09 reinelt Exp $
*
* driver for Matrix Orbital serial display modules
*
*
*
* $Log: MatrixOrbital.c,v $
+ * Revision 1.28 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.27 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
bar_clear();
+ GPO=0;
+
switch (protocol) {
case 1:
MO_write ("\014", 1); // Clear Screen
break;
}
- GPO=0;
return 0;
}
-int MO_clear1 (void)
+int MO_clear1 (int full)
{
- return MO_clear(1);
+ return MO_clear(full?1:0);
}
-int MO_clear2 (void)
+int MO_clear2 (int full)
{
- return MO_clear(2);
+ return MO_clear(full?2:0);
}
-/* $Id: PalmPilot.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: PalmPilot.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
*
* driver for 3Com Palm Pilot
*
*
*
* $Log: PalmPilot.c,v $
+ * Revision 1.9 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.8 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
return 0;
}
-int Palm_clear (void)
+int Palm_clear (int full)
{
if (pix_clear()!=0)
return -1;
- return Palm_flush();
+ if (full)
+ return Palm_flush();
+
+ return 0;
}
int Palm_init (LCD *Self)
-/* $Id: Raster.c,v 1.21 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: Raster.c,v 1.22 2003/07/24 04:48:09 reinelt Exp $
*
* driver for raster formats
*
*
*
* $Log: Raster.c,v $
+ * Revision 1.22 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.21 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
#endif
-int Raster_clear (void)
+int Raster_clear (int full)
{
if (pix_clear()!=0)
return -1;
-/* $Id: SIN.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: SIN.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
*
* driver for SIN router displays
*
*
*
* $Log: SIN.c,v $
+ * Revision 1.9 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.8 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
}
}
-int SIN_clear (void)
+int SIN_clear (int full)
{
int row, col;
}
}
- SIN_write ("\033 ",2);
+ if (full)
+ SIN_write ("\033 ",2);
+
return 0;
}
-/* $Id: Skeleton.c,v 1.7 2001/03/09 13:08:11 ltoetsch Exp $
+/* $Id: Skeleton.c,v 1.8 2003/07/24 04:48:09 reinelt Exp $
*
* skeleton driver for new display modules
*
*
*
* $Log: Skeleton.c,v $
+ * Revision 1.8 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.7 2001/03/09 13:08:11 ltoetsch
* Added Text driver
*
static LCD Lcd;
-int Skel_clear (void)
+int Skel_clear (int full)
{
return 0;
}
-/* $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
*
*
*
* $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
*
}
-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();
}
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;
}
-/* $Id: Text.c,v 1.8 2003/02/22 07:53:10 reinelt Exp $
+/* $Id: Text.c,v 1.9 2003/07/24 04:48:09 reinelt Exp $
*
* pure ncurses based text driver
*
*
*
* $Log: Text.c,v $
+ * Revision 1.9 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.8 2003/02/22 07:53:10 reinelt
* cfg_get(key,defval)
*
static int err_rows;
-int Text_clear (void)
+int Text_clear (int full)
{
- werase(w);
- box(w, 0, 0);
+ if (full) {
+ werase(w);
+ box(w, 0, 0);
+ }
return 0;
}
wmove(err_win, 1 , 0);
wrefresh(err_win);
}
- Text_clear();
+ Text_clear(1);
return w ? 0 : -1;
}
-/* $Id: USBLCD.c,v 1.9 2003/04/04 06:01:59 reinelt Exp $
+/* $Id: USBLCD.c,v 1.10 2003/07/24 04:48:09 reinelt Exp $
*
* Driver for USBLCD ( see http://www.usblcd.de )
* This Driver is based on HD44780.c
*
*
* $Log: USBLCD.c,v $
+ * Revision 1.10 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.9 2003/04/04 06:01:59 reinelt
* new parallel port abstraction scheme
*
}
-int USBLCD_clear (void)
+int USBLCD_clear (int full)
{
int row, col;
-
+
for (row=0; row<Lcd.rows; row++) {
for (col=0; col<Lcd.cols; col++) {
Txt[row][col]='\t';
}
}
-
+
bar_clear();
-
- USBLCD_command (0x01); // clear display
+
+ if (full)
+ USBLCD_command (0x01); // clear display
return 0;
}
bar_add_segment( 0, 0,255, 32); // ASCII 32 = blank
bar_add_segment(255,255,255,255); // ASCII 255 = block
- USBLCD_clear();
+ USBLCD_clear(1);
USBLCD_send();
return 0;
-/* $Id: XWindow.c,v 1.31 2003/04/12 16:23:10 reinelt Exp $
+/* $Id: XWindow.c,v 1.32 2003/07/24 04:48:09 reinelt Exp $
*
* X11 Driver for LCD4Linux
*
*
*
* $Log: XWindow.c,v $
+ * Revision 1.32 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.31 2003/04/12 16:23:10 reinelt
* small glitch in XWindow.c (thanks to Moe Wibble)
*
}
-int xlcdclear()
+int xlcdclear(int full)
{
return pix_clear();
}
-/* $Id: display.c,v 1.34 2002/12/05 19:09:57 reinelt Exp $
+/* $Id: display.c,v 1.35 2003/07/24 04:48:09 reinelt Exp $
*
* framework for device drivers
*
*
*
* $Log: display.c,v $
+ * Revision 1.35 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.34 2002/12/05 19:09:57 reinelt
* patches for gcc-3.2
*
return 0;
}
-int lcd_clear (void)
+int lcd_clear (int full)
{
if (Lcd->clear==NULL) return 0;
- return Lcd->clear();
+ return Lcd->clear(full);
}
int lcd_put (int row, int col, char *text)
-/* $Id: display.h,v 1.15 2002/08/19 04:41:20 reinelt Exp $
+/* $Id: display.h,v 1.16 2003/07/24 04:48:09 reinelt Exp $
*
* framework for device drivers
*
*
*
* $Log: display.h,v $
+ * Revision 1.16 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.15 2002/08/19 04:41:20 reinelt
* introduced bar.c, moved bar stuff from display.h to bar.h
*
int bars;
int gpos;
int (*init) (struct LCD *Self);
- int (*clear) (void);
+ int (*clear) (int full);
int (*put) (int x, int y, char *text);
int (*bar) (int type, int x, int y, int max, int len1, int len2);
int (*gpo) (int num, int val);
int lcd_list (void);
int lcd_init (char *driver);
int lcd_query (int *rows, int *cols, int *xres, int *yres, int *bars, int *gpos);
-int lcd_clear (void);
+int lcd_clear (int full);
int lcd_put (int row, int col, char *text);
int lcd_bar (int type, int row, int col, int max, int len1, int len2);
int lcd_gpo (int num, int val);
-/* $Id: lcd4linux.c,v 1.38 2003/06/13 05:11:11 reinelt Exp $
+/* $Id: lcd4linux.c,v 1.39 2003/07/24 04:48:09 reinelt Exp $
*
* LCD4Linux
*
*
*
* $Log: lcd4linux.c,v $
+ * Revision 1.39 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.38 2003/06/13 05:11:11 reinelt
* error message cosmetics
*
tack=atoi(cfg_get("tack","500"));
process_init();
- lcd_clear();
+ lcd_clear(1);
if (!quiet && hello()) {
sleep (3);
- lcd_clear();
+ lcd_clear(1);
}
debug ("starting main loop");
debug ("leaving main loop");
- lcd_clear();
+ lcd_clear(1);
if (!quiet) hello();
lcd_quit();
-/* $Id: processor.c,v 1.34 2003/07/21 06:34:14 reinelt Exp $
+/* $Id: processor.c,v 1.35 2003/07/24 04:48:09 reinelt Exp $
*
* main data processing
*
*
*
* $Log: processor.c,v $
+ * Revision 1.35 2003/07/24 04:48:09 reinelt
+ * 'soft clear' needed for virtual rows
+ *
* Revision 1.34 2003/07/21 06:34:14 reinelt
* bars on virtual rows fixed
*
while (offset>=lines) {
offset-=lines;
}
+ lcd_clear(0); // soft clear
}
for (i=1; i<=rows; i++) {