Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

SGI hardware problems, solutions, tips, hacks, etc.
Forum rules
Any posts concerning pirated software or offering to buy/sell/trade commercial software are subject to removal.
User avatar
Elf
Donor
Donor
Posts: 86
Joined: Wed Oct 19, 2016 9:54 pm
Location: Pacific Northwest (US)

Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

Unread postby Elf » Sun May 14, 2017 6:54 pm

I was looking at the IRIX keyboard(7) man page, where it describes the protocol used by the old-style asynchronous serial keyboard (Indigo, 4D, Crimson, and Onyx).

I noticed it mentions a DIP switch on the keyboard in several places, to do with a configuration byte pair that the keyboard will send back to the host on request:

Code: Select all

             LEGENDS VS KEYCODES IN DECIMAL
           ____________________________________
           ____________________________|_______
                         PAD.ASTER*    |  108
                          PAD.PLUS+    |  109
           config byte(1st of 2 bytes) |  110
           config byte(2nd of 2 bytes) | DIP SW
[...]


Code: Select all

   Software Interface
     [...] The configuration request control byte causes the
     keyboard to send a two-byte sequence to the system.  The second byte
     contains the eight-bit value set on a DIP switch in the keyboard.
     [...]


I have not been able to locate any description of the (presumably eight position) DIP switch on the keyboard or what the various bits mean. Does anyone have any resources or knowledge about this?
:Indy: :Indy: :Indy: :Indigo2: :Indigo2IMP: :O2: :O2: :Octane: :Octane: :Fuel: :Tezro:
:Indy: [x19] :Indigo: [x7] :O2: [x4]

robespierre
Posts: 1554
Joined: Mon Sep 12, 2011 2:28 pm
Location: Boston

Re: Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

Unread postby robespierre » Sun May 14, 2017 6:57 pm

The switch setting was used to signal the keyboard layout to the computer. French AZERTY, German QWERTZ, ISO, etc,
:PI: :O2: :Indigo2IMP: :Indigo2IMP:

User avatar
Elf
Donor
Donor
Posts: 86
Joined: Wed Oct 19, 2016 9:54 pm
Location: Pacific Northwest (US)

Re: Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

Unread postby Elf » Sun May 14, 2017 7:03 pm

Oh, interesting! I don't suppose there is a listing of settings sitting around anywhere?

Disclosure: I'm working on a new adapter for USB keyboard/mouse to SGI serial, Sun Type 5, and PS/2.
:Indy: :Indy: :Indy: :Indigo2: :Indigo2IMP: :O2: :O2: :Octane: :Octane: :Fuel: :Tezro:
:Indy: [x19] :Indigo: [x7] :O2: [x4]

User avatar
miod
Posts: 508
Joined: Fri Oct 09, 2009 2:44 am
Location: Clermont-Ferrand (France)
Contact:

Re: Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

Unread postby miod » Sun May 14, 2017 10:55 pm

Elf wrote:Oh, interesting! I don't suppose there is a listing of settings sitting around anywhere?

It is just an 4-bit country code, the upper 4 bits being apparently unused.
You can get a list in /usr/include/sys/kbd.h:

Code: Select all

/* keyboard types */
#define KB_TYPE_AMERICAN        0
#define KB_TYPE_GERMAN          1
#define KB_TYPE_FRENCH          2
#define KB_TYPE_ITALIAN         3
#define KB_TYPE_DANISH          4
#define KB_TYPE_SPANISH         5
#define KB_TYPE_NORWEGIAN       6
#define KB_TYPE_SWEDISH         7
#define KB_TYPE_SWISS_FRENCH    8
#define KB_TYPE_UNITED_KINGDOM  9
#define KB_TYPE_BELGIUM         10
#define KB_TYPE_SWISS_GERMAN    11
#define KB_TYPE_DUTCH           12
#define KB_TYPE_FINNISH         13
#define KB_TYPE_PORTUGUESE      14
#define KB_TYPE_GREEK           15
:Indigo:R3000 (alas, dead) :Indigo:R4000 x4 :Indigo2:R4400 :Indigo2IMP:R4400 x2 :Indigo2:R8000 :Indigo2IMP:R10000 :Indy:R4000PC :Indy:R4000SC :Indy:R4400SC :Indy:R4600 :Indy:R5000SC :O2:R5000 x3 :O2:RM7000 :Octane:2xR10000 :Octane:R12000 :O200:2xR12000 :O200: - :O200:2x2xR10000 :Fuel:R16000 :O3x0:4xR16000 :A350:
among more than 150 machines : Apollo, Data General, Digital, HP, IBM, MIPS before SGI, Motorola, NeXT, SGI, Solbourne, Sun...

User avatar
Elf
Donor
Donor
Posts: 86
Joined: Wed Oct 19, 2016 9:54 pm
Location: Pacific Northwest (US)

Re: Old serial keyboard DIP switch (Indigo, 4D, Crimson, Onyx)

Unread postby Elf » Sun May 14, 2017 11:16 pm

miod wrote:It is just an 4-bit country code, the upper 4 bits being apparently unused.
You can get a list in /usr/include/sys/kbd.h: [...]

Thank you very much! :)
:Indy: :Indy: :Indy: :Indigo2: :Indigo2IMP: :O2: :O2: :Octane: :Octane: :Fuel: :Tezro:
:Indy: [x19] :Indigo: [x7] :O2: [x4]


Return to “SGI: Hardware”

Who is online

Users browsing this forum: robespierre and 1 guest