The Datamini is a small portable 40x8 character DEC VT52 compliant Terminal (DTE). Via a serial link, you can plug this device into a Unix or DEC based mini/main frame computer to operate a session.
It has two 40x4 LCD displays (making up a 40 x 8 character display),
a serial port, and PC AT keyboard port (to plug in a keyboard), and a
9VDC power socket. It operates at 2400 baud, and has a 64 line buffer.
You can use the keypad keys to move around the buffer. The whole thing
runs very nicely. Here is a basic schematic of Datamini:
The Datamini uses a Siemens 80C537N microcontroller, on a Darmicon board (by Howard Pullen of the Northern Territory University).
This was the project I did for my microcontroller training program (completed at the Northern Territory Uni). The program source (written in A51) consists of three areas- a) The code that decodes scankeys via PC keyboard serial interface and sends it to the host via the serial port b) Code that receives data from serial port, processes control and escape sequences, manipulates the screen buffer and displays the buffer on the LCD's and c) code that decodes the keypad and executes actions when things are pressed on the keypad.
Interrupt handling is done in two halves. The two ISR's that read the keyboard and read the serial port grab their data and dump it on a circular queue. Foreground routines then pull data off the circular queues and process it within foreground. The idea here is not to miss interrupt events by other interrupts taking up too much time, as interrupt latency is very tight on this little micro. Although this method made the project slightly more complicated to code, without using this method, the project probably wouldn't have worked.