[Whistle graphic] Hacking the Whistle InterJet
Working with the InterJet LCD

Status:

The keypad/LCD emulates a simple serial terminal on COM2 at 57600 baud. It uses the AT89C2051 LCD chipset.

Curt Timmerman's LCD perl example works great for talking to the LCD if set to 57600.

Joe is working on figuring out the LEDs. We learned that Control-D sent to the LCD lights up the PC light and the LAN light.

The BIOS is listening on COM2 all the time for control information. The hard-shutdown sequence (258 - don't use, as it doesn't unmount filesystems) still works even without the original OS (Royce)

Here is Royce's perl script that demonstrates crude LCD writes, and some pictures of the load screen and the default screen displayed when the script terminates.

Details:

According to a post from Julian Elischer, the LCD lives on COM2. The InterJet BIOS was customized to send POST data out COM2 to the LCD.

 ____________________
|  Whistle InterJet  |
|                    |
|  Self test  : 64   |
|  Power check: Good |
|                    |
| Loading system...  |
|____________________|
Here we see that the kernel is picking up COM2 on sio1:
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
However, if you configure minicom to point to /dev/cuaa1 (COM2), starting minicom causes the following string to appear at the bottom of the screen:
|ATAS7=45 S0=0 L1 V1 |

The resulting device is a little more cooperative.



Here is Archie Cobbs' cheat sheet on the LCD control sequences:
Here are the graphics mode commands:

Ctrl-A [byte]                - set X coordinate (col)
Ctrl-B [byte]                - set Y coordinate (row)
Ctrl-C [NUM] [byte1] ... [byteNUM]    - draw bitmap graphics

Each byte is an 8 bit vertical stripe. Note that the Y coordinate
counts 8 vertical bits at a time; it's range is 0 - 7.

Also:

[Ctrl-F]    - Turn off inverted text
[Ctrl-G]    - Turn on inverted text

[Esc] W        - Enable hardware watchdog (!) LCD will reset
          the box if no data received for 10 seconds
          (you can send a NUL byte)

The other thing is that the LCD firmware goes nutty if you try
to draw off the screen, so you have to "clip" your own drawings..

Some of the characters appear to do interesting things (in minicom vt102):

backspace	works as expected (non-destructive);
		backspace beyond screen edge is ignored
Enter		carriage return without linefeed
alt-[*]		all alt keys appear oto be ignored; captured by host OS
Control-B	moved down a row?
Control-C	activates a weird drawing character set
		hitting a few F keys seems to turn this mode off (?)
Control-F11	appears to be a drawing character as well
Control-D	turned on amber PC light and green LAN light
Control-H	move back a column
Control-I	horizontal tab; appears to be 8-stop
Control-J	moved down a row
Control-L	clear screen
Rebooting the machine does not clear the LCD. It must be power-cycled or manually cleared.

Joe's key mappings::) It looks like the keyboard/lcd is just a simple serial terminal on com2 at 57600 baud. Here's what the keys send:

0-9		0-9
*		*
#		#
softkey1	^
softkey2	v
softkey3	<
softkey4	>
X		0x09 (tab)
return		0x0d (cr)

The original program that talked to the LCD was called paneld.


Some chipset information from Sake:
Regarding the LCD+keypad: I unscrewed my InterJet and looked up the
chipset (1x KS0107B + 2x KS0108B) and found out that these are just
LCD-drivers (see:
http://www.perfectlcd.com/form/IC_spec/samsung/ks0107.pdf and
http://www.perfectlcd.com/form/IC_spec/samsung/ks0108.pdf). This means
that the motherboard doesn't talk RS232 to the board. Removing the label
from the chip next to the flatcable proved this, this chip is the
AT89C2051. This is a little CPU with Flash, RAM, 16 I/O lines and
RS232-UART on board (all in a 20-pin chip, nice!). Unfortunately this
makes the search for the LCD-command-set useless since it has been written
into this controller and is most likely totally custom build by Whistle.
Which means that only the old guys from Whistle might be able to produce
all the instructions.

Wonder at the "whistle and flutes"! Select ...
Hacking the Whistle InterJet | my pages | feedback

INTERESTING FACT (from Acme Whistles): The first major sports event to be refereed with a whistle was a soccer match held in 1878 at the English soccer club Nottingham Forest.
https://www.alaska.net/~royce/interjet/lcd.html
was last updated: 2016-10-15