Re: serial terminal out of an LCD display?



On 22 May 2006 01:14:58 -0700
"pbetti" <pbetti@xxxxxxxxxxxx> wrote:

Just to remain on topics i remember that Hal Bower on his page
describe the kind of beast we are talking about. Quoted from
http://home.att.net/~halbower/ :
[snip]
But he does not exaplain how the magic is done. There's someone who
knows?

Short Explanation: Start with a VGA display and 8-bit ISA (original IBM
PC bus) controller for the display. There appears to be a suitable
combination from MVS (from a CircuitCellar ad, www.star.net/people/~MVS)
for $195, although the two I have used came from Earth LCD
(EarthLCD.com). Also get the technical/programming manual on the
particular LCD controller chip used in the ISA adapter since you will
need it to program the replacement ROM (or discrete driver).

Make an interface from the ISA bus to whatever interface you need on the
8-bit computer. Since I used Z180's in both my implementations (the
computer on the above cited web page and a stand-alone terminal), the
adapter needed to do three basic things:
1 - interface the address and data busses as well as strobe conversions
(read/write, io/mem, reset inversion, address decode for next items all
done in a 16V8 GAL)
2 - 8255 for either parallel keyboard (from an 8748 decoder used in
laptop) or I/O matrix decode of switch contacts used on keyboard
(terminal with main CPU debounce, delay and conversions).
3 - A little beeper made from a 556 dual-555 timer. When a strobe from
the address decoder hits it, it gives about a 1/2 second 800 Hz beep.

With the Z180, all 20 address lines are carried through, and the
computer (or main processor) limits itself to 512 KB of memory so that
the MSB (Bit 19) can be used to read/write to the expansion and the ROM
extension address of E0000-E8000H and Video RAM of B0000-B8000 can
remain intact and be used as is. In both of my installations a single
512k x 8 SRAM was used in the main processor addressed at 0-7FFFFH.

For the computer, I implemented BIOS and boot ROM routines to access the
terminal. CONOUT sends a character which is inserted into a data
structure which includes an attribute byte (for gray scale color, blink,
hilite, etc), display page and address per PC specs. Also needed in the
BOOT rom is a program to properly initialize the display. I chose to
rewrite the ROM on the controller for the computer and included
'functions' in the data structure which allow me to change the display
to other than 80x25 resolution, and I frequently use 33x42 or something
like that (I'm going from memory now) when programming. When modes are
changed, the resolution is also changed in the ZCPR Termcap definitions
which emulate three types of terminals (H-19, Wyse and ANSI/VT10x).
Other 'functions' allow cursor repositioning, reading character at
cursor and a few other things. Since the controller chip on the
EarthLCD controller will not function at the full speed of a Z180, one
memory wait state needs to be added at 9.216 MHz (18.432 MHz crystel)
and two memory and one additional IO wait states are needed if the
processor is running at 18.432 MHz with a Z8S180 and the div-by-2
circuit bypassed). Performance seems to be slightly slower than a
serial terminal at 19.2 kbps in overall usage, but things such as
scrolling are slowed by the DMA memory moved in the onboard video RAM ..
slow...

For the Terminal, I used an old controller board that used 16-bit
addressing decodes on-board and the clock chip (62421) conflicted with
an address used in the VGA adapter alternate setup port. To overcome
clock corruption, I resorted to reading and saving time/date,
initializing VGA, restoring time/date. The terminal uses only the
single Z180 to control display, keyboard scan/debounce and conversion,
seriol I/O to and from an onboard ASCI with MAX233 voltage conditioning
on RS232 IO, and a couple of lines from the 8255 for status LEDs. A
screen-oriented setup/configuration screen is used to set baud rates (up
to 38.4 kbps in hi-speed mode with the div-by-2 bypass in the Z8S180),
terminal emulation mode, hi/low speed of the Z180 and a few more things.
The little controller had a EEPROM (24Cxx) on it, and it was used to
store configuration parameters. The 62421 RTC was used during power-up
to measure the CPU clock speed, and when setup is exitted to insure that
the CPU is functioning correctly (e.g. will not allow the Hi-Speed mode
if the Z8S180 register is not present). All of the software fit in a
27256 EEPROM including all of the LCD control software, so the ROM on
the VGA adapter was not used.

I hope this provides some insight into how it has been done here. The
laptop is the most-used machine in my 8-bit inventory and was shown at
the Trenton Computer fest in 1997, the year that the CP/M sessions were
discontinued so it was in a 'hardware' forum.

Hal
.



Relevant Pages

  • Re: Text terminal rendering design
    ... The client is an application with need of a UI that works by ... what symbols it needs to display and the coordinates at which each ... In the case of most text terminals, a symbol is represented by a single ... complex conversion operations to put the symbol into a form that the ...
    (comp.object)
  • Re: Text terminal rendering design
    ... The client is an application with need of a UI that works by ... The management of that array's content by the client is quite a different concern than actually rendering it in the display de jour. ... The client would talk to 2D Array to define its content, but it would talk to somebody else to trigger the rendering once the 2D Array is properly initialized. ... So even if the responses to the first three messages were simple enough to put in a single SymbolFactory object, one might not want to do that because of the need to map into flavors of terminals. ...
    (comp.object)
  • video card adequat?
    ... a compaq webcam and it's display is very bad.. ... 512 kilobyte secondary memory cache Board: ... Primary IDE Channel [Controller] ...
    (microsoft.public.windowsxp.basics)
  • Re: MVCIN instruction
    ... > exactly what you need to do the "endian change". ... as long as it was fixed-wired terminals. ... the clone controller business) ... ... you could possibly have two different kinds of ascii ... ...
    (bit.listserv.ibm-main)
  • Re: Beginner questions: driving an LCD display [ Pandora, LPC2148, LPC2478, Openmoko ]
    ... resolution LCD display -- 320x240 or better. ... I expect I'll need a controller, probably an ARM something to handle ... QVGA TFT Color LCD: ... 10M Ethernet interface ...
    (comp.arch.embedded)

Loading