Subject: Re: Same problem again: 400t with Domain keyboard
To: None <joost@cadlab.de>
From: Herb Peyerl <hpeyerl@beer.org>
List: port-hp300
Date: 08/08/1995 20:36:19
Michael Joosten <joost@ori.cadlab.de> wrote:
> Somewhat unrelated: There doesn't seem to be a built-in way to specify the
> timezone in /etc/rc, I put in the common SYSV method of source'ing an
> /etc/TIMEZONE file.
I'm not exactly sure what you mean here but this is the way it's done:
lrwxr-xr-x 1 root wheel 35 Jul 7 11:25 /etc/localtime@ -> /usr/share/zoneinfo/Canada/Mountain
> program, where one could exchange the Domain keyboard+mouse with a HP set. Is
> that still alive?
That's a new one on me. I've not heard of that but I'm not an authority either.
> X server) support for the Domain keyboard. On a DN3000 board, I was able to
> find out that the keyboard is attached to the Dual UART 2681. But it seems
> that on the 400t board, the situation is quite different. No 2681 to see,
> there is only a single 16550 for the DCA RS232 interface. Perhaps HP had
> radically changed the keyboard interface from the original Apollo design...
> Futhermore, the Extended Test reveals that the 'Utility Chip at 41' bears 4
> SIOs, so it might be possible that the 2 2681 of a DN3500/4500 are integrated
> in that ASIC.
Why does it matter which UART you use to talk to it? It's just a serial
device. Just as it doesn't matter to a modem whether it's plugged into a
16550, 2681, 8530, whatever..
> Is it possible to get any information about this? Who knows about the data
> format of the keyboard/mouse, besides being at 1200,e,8,1 ?
Here's some code I had from way back:
struct ap_translation {
int c, value;
};
struct ap_translation table[] = {
{0xcb, 0x0d}, {0xdb, 0x0d}, {0xfb, 0x1b}, {0xc8, 0x5c},
{0xd8, 0x5c}, {0xf8, 0x1c}, {0xc9, 0x7c}, {0xd9, 0x7c},
{0xf9, 0x7f}, {0x5b, 0x7b}, {0x5d, 0x7d}, {0x7b, 0x5b},
{0x7d, 0x5d}, {0xca, 0x09}, {0xda, 0x09}, {0xfa, 0x09},
{0xcc, 0x2f}, {0xdc, 0x3f}, {0xfc, 0x3f}, {0xde, 0x08},
{0x00, 0x00}
};
char
ap_translate(c)
char c;
{
struct ap_translation *p;
p = ap_translation_table;
for ( ; p->c ; p++)
if (p->c == c) {
c = p->value;
break;
}
return(c & 0xff);
}
I didn't play with the mouse so I have no code for that.