Who Couldn’t Use A Little More Screen Space?

Text LCD’s are handy for any occasion, a printer port on your PC is also darn handy as well. Mix together and add in a splash of linux and you get a very handy Linux device driver for a 16×2 LCD connected to the parallel port.

Electrically the LCD is wired up in a typical 4 bit mode, this allows the parallel port to use its 8 bit data register to write data, but also control the Register Select and Enable pins. Next is to make a module for linux to use, it seems like pretty standard fair for this type of screen.

Make the driver, insert the module so it can be loaded, and add a node so you know where to find it later, and your only an “echo Hello > /dev/my_lcd” away from finding all sorts of creative uses for your new external display.

23 thoughts on “Who Couldn’t Use A Little More Screen Space?

  1. Wait… What…. I though I was going through the 2004 archives :)

    “a printer port on your PC is also darn handy as well.” ????

    Haven’t had a printer port on my rig for years.

    1. short of writing a DOS-TSR i dont think its possible with a parallel, buuut what IS possible is to use MODE & CTTY commands to use the serial port (PLUS microcontroller) as you describe :)

      in my opingion, even if you COULD use the LPT port for OUTput with CTTY & MODE, the original(DOS) parallel port driver(block-device) only OUTputs on the data lines(wires) and input on this port is through the status wires… only 5 of em. no real standard way to INput from the parallel,,, until win95 and updated drivers were able to use BI-directional ports IN BI-DIRECTIONAL MODE!

      as far as i know there is no way to OUTput the screen on one port and still use normal keyboard or keyboard over serial, in and out has to be same port.

      so either way your stuck writing system TSRs/drivers

      OR USE SERIAL PORT (and uC chip) AND ITS ALL DONE :)

      1. PS: once you have it working, you will NEVER KNOW! why? because DOS only “types” to the screen after you hit a button on the keyboard… the imaginary keyboard that is connected to the serial port alongside your display… impossible to test display UNTIL you also go to test your virtual serial-port-keyboard…

        aka prompt wont show on ur screen UNTIL you hit enter and DOS “types” a second one imm. underneath.
        of course all of that is solved by splicing two serial cables and two (DOS) computers (or one with windows and two copys of software running AND two seperate ports to splice to… happy programming :)

      2. if you do NOT want to write YOUR OWN TSR / DRIVER FROM SCRATCH…

        then the easyest option (included with DOS) is to use CTTY and MODE commands to have your DOS prompt on your external LCD…

        the CTTY command redirects BOTH screen AND keyboard!!!!!!!!!!!!

        so if your output LCD is connected to LPT and you use CTTY and MODE to transfer console control from console to parallel port,,, you will never know your LCD works! because DOS never prints to the screen UNTIL SOMETHING HAPPENS, like hitting enter and getting yet-another-fresh-prompt.
        in fact, you will think you crashed your computer.


        in order to hit enter,,, YOU NEED A KEYBOARD! or some other input device to hit enter for you!
        like a self-made keyboard out of buttons, or maybe a cable splice for testing, taking the signal for RS232 “ENTER” from a second computer or port

  2. if your short on external parallel ports,
    make one!

    well IF you have an UNUSED PATA/IDE port;
    then throw in a port regester (CMOS or TTL) and a TRI-state buffer (TTL or CMOS) and you got a bi-directional 8-bit external port! now double it and attatch db25 dsub connector.
    (parallel has 8 data, 4 out-only, and 5 in-only)
    for a total of 17 bits.
    hmm might have to multiplex one of the status bits as “IDE”/ISA is 16 bits …
    only problem is if software goes haywire and tries to tell THE PRINTER if it’s out of paper,,, lol
    connector not included.

    oh, wait, you need a very simple passive RC timer and diode to pause the “IDE”/ISA bus while your register accepts the data (i think called wait state?), only nessesary when the bus speed is greater then the logic chip can take… use a fast register chip. and adjust RC for minimum time for IC to reliably register data.

    remember a parallel’s maximum theoretical speed is usually limited in the first PCI based pentium 1’s and higher. ~500khz if i remember, modern ports can do more, i THNINK. and is why an ancient CNC machine designed for a 286/386 will never, ever, evereverever work on a modern PC,,, ISA bus speed was a reliable refrence back then until about pentium 1 i THINK.

    now do a little linux/windows trickery with generic parallel drivers insalled MANUALLY at “unlikely” addresses (IDE address)
    and voila! you now have your valued port back.
    (bracket not included. lol)

    PS: mainboards with it ARE available.
    PPS: insert troll about buying only mainboards with it

      1. hahahahaha i got trolled EDIT: OWNED
        im so embarrassed!
        i didnt even know(EDIT: realise) those existed!

        i mean we all argue about ports all f**** day long!
        every bloody month!

        ROFL my solution actually worked but slows ISA subsystem down to the speed of the chip/chip’s RC… but ISA is _supposed_ to only be a very specific FIXED speed. 14-point-sumthin MHz i THINK.

        best troll ever, made my day :)

  3. Hi MattQ:

    I forgot to draw it…. Yes, exactly, it is a pitfall for newbies and even for a programmer who doesn’t have some electronics background…
    I will update the circuit diagram soon,,,

    Thanks for the information….

  4. LCDSmartie fro Windows is really kickass. It supports 1×10, 1×16, 1×20, 1×24, 1×40,
    2×16, 2×16, 2×20, 2×24, 2×40,
    4×16, 4×20, 4×40 LCD’s, serial(COM port) parallel And USB

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.