-/* $Id: drv_BeckmannEgle.c,v 1.1 2004/05/28 14:36:10 reinelt Exp $
+/* $Id: drv_BeckmannEgle.c,v 1.2 2004/05/31 05:38:02 reinelt Exp $
*
* driver for Beckmann+Egle mini terminals
* Copyright 2000 Michael Reinelt <reinelt@eunet.at>
*
*
* $Log: drv_BeckmannEgle.c,v $
+ * Revision 1.2 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.1 2004/05/28 14:36:10 reinelt
*
* added drv_BeckmannEgle.c (forgotten at first check in :-)
}
-static void drv_BE_defchar (int ascii, unsigned char *buffer)
+static void drv_BE_defchar (int ascii, unsigned char *matrix)
{
int i;
char cmd[32];
p = cmd;
*p++ = '\033';
*p++ = '&';
- *p++ = 'T'; // enter transparent mode
- *p++ = '\0'; // write cmd
- *p++ = 0x40|8*ascii; // write CGRAM
+ *p++ = 'T'; // enter transparent mode
+ *p++ = '\0'; // write cmd
+ *p++ = 0x40|8*ascii; // write CGRAM
for (i = 0; i < YRES; i++) {
- *p++ = '\1'; // write data
- *p++ = buffer[i]; // character bitmap
+ *p++ = '\1'; // write data
+ *p++ = matrix[i] & 0x1f; // character bitmap
}
- *p++ = '\377'; // leave transparent mode
+ *p++ = '\377'; // leave transparent mode
drv_generic_serial_write (cmd, p-cmd);
}
-/* $Id: drv_Crystalfontz.c,v 1.19 2004/05/30 08:25:50 reinelt Exp $
+/* $Id: drv_Crystalfontz.c,v 1.20 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for Crystalfontz display modules
*
*
*
* $Log: drv_Crystalfontz.c,v $
+ * Revision 1.20 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.19 2004/05/30 08:25:50 reinelt
*
* Crystalfontz 631 driver finished
}
-static void drv_CF_defchar1 (int ascii, unsigned char *buffer)
+static void drv_CF_defchar1 (int ascii, unsigned char *matrix)
{
- char cmd[2]="\031n"; // set custom char bitmap
+ int i;
+ char cmd[10]="\031n"; // set custom char bitmap
// user-defineable chars start at 128, but are defined at 0
cmd[1]=(char)(ascii-CHAR0);
- drv_generic_serial_write (cmd, 2);
- drv_generic_serial_write (buffer, 8);
+ for (i = 0; i < 8; i++) {
+ cmd[i+2] = matrix[i] & 0x3f;
+ }
+ drv_generic_serial_write (cmd, 10);
}
static void drv_CF_defchar23 (int ascii, unsigned char *matrix)
{
- char buffer[9];
int i;
+ char buffer[9];
// user-defineable chars start at 128, but are defined at 0
buffer[0] = (char)(ascii-CHAR0);
- memcpy(buffer+1, matrix, 8);
-
+
// clear bit 6 and 7 of the bitmap (blinking)
for (i = 0; i < 8; i++) {
- buffer[1+i] &= 0x3f;
+ buffer[i+1] = matrix[i] & 0x3f;
}
drv_CF_send (9, 9, buffer);
-/* $Id: drv_Cwlinux.c,v 1.7 2004/05/28 13:51:42 reinelt Exp $
+/* $Id: drv_Cwlinux.c,v 1.8 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for Cwlinux display modules
*
*
*
* $Log: drv_Cwlinux.c,v $
+ * Revision 1.8 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.7 2004/05/28 13:51:42 reinelt
*
* ported driver for Beckmann+Egle Mini-Terminals
cmd[2]=(char)(ascii+1);
for (i=0; i<8; i++) {
- cmd[3+i]=buffer[i];
+ cmd[3+i] = buffer[i] & 0x1f;
}
drv_generic_serial_write(cmd,12);
usleep(20); // delay for cw1602 to settle the character defined!
-/* $Id: drv_HD44780.c,v 1.22 2004/05/27 03:39:47 reinelt Exp $
+/* $Id: drv_HD44780.c,v 1.23 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for HD44780-based displays
*
*
*
* $Log: drv_HD44780.c,v $
+ * Revision 1.23 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.22 2004/05/27 03:39:47 reinelt
*
* changed function naming scheme to plugin::function
}
-static void drv_HD_defchar (int ascii, unsigned char *buffer)
+static void drv_HD_defchar (int ascii, unsigned char *matrix)
{
+ int i;
+ unsigned char buffer[8];
+
+ for (i = 0; i < 8; i++) {
+ buffer[i] = matrix[i] & 0x1f;
+ }
+
// define chars on *both* controllers!
drv_HD_command (allControllers, 0x40|8*ascii, T_EXEC);
drv_HD_data (allControllers, buffer, 8, T_WRCG);
-/* $Id: drv_M50530.c,v 1.5 2004/05/29 15:53:28 reinelt Exp $
+/* $Id: drv_M50530.c,v 1.6 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for M50530-based displays
*
*
*
* $Log: drv_M50530.c,v $
+ * Revision 1.6 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.5 2004/05/29 15:53:28 reinelt
*
* M50530: reset parport signals on exit
}
-static void drv_M5_defchar (int ascii, unsigned char *buffer)
+static void drv_M5_defchar (int ascii, unsigned char *matrix)
{
int i;
// Fixme: looks like the M50530 cannot control the bottom line
// therefore we have only 7 bytes here
for (i=0; i<7; i++) {
- drv_M5_command (0x100|buffer[i], 20);
+ drv_M5_command (0x100|(matrix[i] & 0x3f), 20);
}
}
-/* $Id: drv_MatrixOrbital.c,v 1.24 2004/05/28 13:51:42 reinelt Exp $
+/* $Id: drv_MatrixOrbital.c,v 1.25 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for Matrix Orbital serial display modules
*
*
*
* $Log: drv_MatrixOrbital.c,v $
+ * Revision 1.25 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.24 2004/05/28 13:51:42 reinelt
*
* ported driver for Beckmann+Egle Mini-Terminals
}
-static void drv_MO_defchar (int ascii, unsigned char *buffer)
+static void drv_MO_defchar (int ascii, unsigned char *matrix)
{
- char cmd[3]="\376N";
+ int i;
+ char cmd[11]="\376N";
cmd[2]=(char)ascii;
- drv_generic_serial_write (cmd, 3);
- drv_generic_serial_write (buffer, 8);
+ for (i = 0; i < 8; i++) {
+ cmd[i+3] = matrix[i] & 0x1f;
+ }
+ drv_generic_serial_write (cmd, 11);
}
-/* $Id: drv_MilfordInstruments.c,v 1.4 2004/05/31 01:31:01 andy-b Exp $
+/* $Id: drv_MilfordInstruments.c,v 1.5 2004/05/31 05:38:02 reinelt Exp $
*
* driver for Milford Instruments 'BPK' piggy-back serial interface board
* for standard Hitachi 44780 compatible lcd modules.
*
*
* $Log: drv_MilfordInstruments.c,v $
+ * Revision 1.5 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.4 2004/05/31 01:31:01 andy-b
*
*
}
-static void drv_MI_defchar (int ascii, unsigned char *buffer)
+static void drv_MI_defchar (int ascii, unsigned char *matrix)
{
int i;
- char cmd[2]="\376x";
+ char cmd[10]="\376x";
+
if (ascii<8) {
cmd[1]=(char)(64+ascii*8);
for ( i=0; i<8; i++) {
- buffer[i]&=0x1f;
- };
- drv_generic_serial_write (cmd, 2);
- drv_generic_serial_write (buffer, 8);
+ cmd[i+2] = matrix[i] & 0x1f;
+ };
+ drv_generic_serial_write (cmd, 10);
}
}
Model=i;
info ("%s: using model '%s'", Name, Models[Model].name);
- if (drv_generic_serial_open(section, Name)<0) return -1;
+ if (drv_generic_serial_open(section, Name, 0) < 0) return -1;
// initialize global variables
DROWS = Models[Model].rows;
return ret;
// initialize generic bar driver
- if ((ret=drv_generic_text_bar_init())!=0)
+ if ((ret=drv_generic_text_bar_init(0))!=0)
return ret;
// add fixed chars to the bar driver
-/* $Id: drv_USBLCD.c,v 1.4 2004/05/26 11:37:36 reinelt Exp $
+/* $Id: drv_USBLCD.c,v 1.5 2004/05/31 05:38:02 reinelt Exp $
*
* new style driver for USBLCD displays
*
*
*
* $Log: drv_USBLCD.c,v $
+ * Revision 1.5 2004/05/31 05:38:02 reinelt
+ *
+ * fixed possible bugs with user-defined chars (clear high bits)
+ * thanks to Andy Baxter for debugging the MilfordInstruments driver!
+ *
* Revision 1.4 2004/05/26 11:37:36 reinelt
*
* Curses driver ported.
drv_UL_send();
}
-static void drv_UL_defchar (int ascii, unsigned char *buffer)
+static void drv_UL_defchar (int ascii, unsigned char *matrix)
{
int i;
drv_UL_command (0x40|8*ascii);
for (i = 0; i < 8; i++) {
- if(*buffer == 0) *BufPtr++ = 0;
- *BufPtr++ = *buffer++;
+ if(*matrix == 0) *BufPtr++ = 0;
+ *BufPtr++ = *matrix++ & 0x1f;
}
drv_UL_send();