---------------------------------------------------------------------
GraphLCD driver library

The Noritake 800(A) series driver
---------------------------------------------------------------------

Description
-----------
The Noritake 800(A) series driver supports following VFD displays manufactured
by Noritake (see http://www.noritake-itron.com on the link "Medium 0.6 dot"):
 - GU128X64-800A;
 - GU256X32-800A;
 - GU128X32-800A;
 - GU160X16-800A;
 - GU160X32-800A;
 - GU192X16-800A.

Wirings
-------
The VFD should be connected to a parallel port of the PC

printer port      LIQUIDMP3        MZ            other?
---------------------------------------------

Data lines D0...D7 connected straight in all wirings

Strobe (1)         CSS (23)      WR (17)
Linefeed (14)      RD (21)       RD (21)
Init (16)          WR (17)       CSS (23)
Select (17)        C/D (19)      C/D (19)

Printer port pins 18 .... 25 connected to GND;
VFD *ONLY EVEN* pins 2 .... 24 connected to GND
Everything else is *NOT CONNECTED*

Further wirings might work and then for sure very easyly added to the code.
Just extend N800LptWiringMask(..) accordingly. This method is called in a
loop over all 16 (4 wires for now) possibilities in the constructor, so the
results are cached for the actual writes to the LPT control port, very
similar to ReverseBits(..) for data.

The driver should also work for "WIRING_MZ", just report if there are
problems.
Feel free to add support for "Parallel #2 Interface" or "Serial interface".

Tested only on my own GU128x64-800(A) so far, just with the default 8-bit
mode parallel wiring (referred as WIRING_LIQUIDMP3 or "0" in this code, or
"Parallel #1 Interface"in the data sheet). I can't actually test the other
wiring (as the display is already mounted in my HTPC, and the cable soldered),
or even the other modes from the datasheet ("Parallel #2 Interface", or
"Serial interface"), for those, my display lacks the necessary jumpers on
it's PCB)
  
  
Configuration Parameters
------------------------
The Noritake 800(A) series driver supports the following parameters in config
file:

Device
 Instead of using the direct output via port address (see Port), you
 can use the parport device (/dev/parportX). The advantage over the
 direct output via port address is that this works for non-root users
 also. But it's a little bit slower. The modules ppdev.o, parport.o
 and parport_pc.o must be loaded or compiled into the kernel.

Port
 Sets the port address of the parallel port. If this parameter is not
 given, 0x378 is used. To use this direct output, the program that
 uses the driver library has to be started with user 'root'.

Width
 Sets the horizontal size of the display. If this parameter is not
 given, a default value of 256 pixels is used.

Height
 Sets the vertical size of the display. If this parameter is not
 given, a default value of 64 pixels is used.

UpsideDown
 Rotates the display output by 180 degrees. This might be useful, if
 the LCD is mounted upside-down.
 Possible values: 'yes', 'no'
 Default value: 'no'

Invert
 Inverts the display.
 Possible values: 'yes', 'no'
 Default value: 'no'

Brightness
 Sets the brightness of your display's backlight.
 Possible values: 0 <= x <= 100)
 Default value: 100

AdjustTiming
 To get a timing that is as accurate as possible, the drivers measure
 the time for port commands (see: benchmark in syslog). You might
 decrease or increase the time to wait after port commands with this
 parameter. Normally, there is no need to change this parameter.
 Possible values: -50 <= x <= 50
 Default value: 0

RefreshDisplay
 Normally, most of the drivers do not update the whole display, but
 only the areas that have changed since last update. So it might be,
 that some faulty pixels would stay a longer time. To avoid this, the
 plugin makes a complete refresh from time to time. This parameter
 defines how often a complete refresh will be done.
 e.g.: A value of 5 means, that the plugin will make a complete
       refresh on every 5th update.
 A value of 0 completely disables complete refreshs. 
 Possible values: 0 <= x <= 50
 Default value: 5

