On 4/25/2017 at 3:55AM, Geoffrey Reed wrote:
In the ?spare? sectors on the xenix 3.2 media there is
information on
hooking a Tandy 2000? Keyboard to a 16/6000 I forget which disk it is on
:( was told about it years ago by the xenix specialist at a RS computer
center store
It's not that easy. It's a chicken and egg thing. You have to have the original
keyboard to copy in the new z80ctl and related files, then wire up the 2000 keyboard.
Here are the instructions, I have the install software as well as the instructions for
changing the 68000 to a 68010 if anyone is interested.
README starts here
=================
UNSUPPORTED SUPPORT FOR TANDY 2000 SERIES KEYBOARDS ON THE TANDY 16B/6000
Z80 Control System Version 3(121) and later
18-Oct-87 710185
The instructions and files enclosed in this area allow owners of
Tandy Model 16A, 16B and Tandy 6000 systems to use the keyboard that is
made for the Tandy 2000/1000 family as the console keyboard.
On most systems, word processors and other applications are typically
difficult to use because of the limited functionality of the standard
16B/6000 keyboard. These changes will allow you to use the console
to its full potential. It will become a workstation people will
want to use.
THE DISCLAIMER
At this time, these modifications ARE NOT officially supported or
approved by Tandy Corporation or Radio Shack. The contents of
this tar file are provided "as is", without any warranty of any
kind. It is entirely the responsibility of the user to determine
whether these files should be used with the users' system. The user
shall make any adjustments or corrections necessary to use these materials.
By providing these materials, it should be understood that there is
no commitment of any kind to provide these materials in a supported form
in the future.
When reporting problems with your system or obtaining service, make sure
the problem persists when running with the standard release of the
operating system and the standard keyboard. Problems that occur when
using the items in this tar archive may not be responded to and may not
be corrected.
The modifications have been heavily used on the systems used by the
XENIX System Programmers and other systems with few problems. (Some
application software does not like the code sequences generated by the
arrow keys.) Since no hardware modifications need to be made to the existing
keyboard or computer, you can easily switch to the stock 3.2.0 operating
system if you suspect a problem, or when taking your system in for service.
HOW IT WORKS
Both the original 16B/6000 and the 2000 keyboard use a serial transmission
method, where the data is sent to the computer via a data and clock signal.
The 16B/6000 keyboard produces 8 bit ASCII characters, and sets the
high bit on some characters to increase the number of codes.
The 2000 keyboard produces 8 bit scan codes, generating one code when the
key is pressed and one when it is released. Most keys also repeat
the "press" scan code if they are held down long enough. It is up to
software to translate the scan code into a character, and to keep track
of the SHIFT, CTRL and ALT keys, changing the generated character accordingly.
Because the electrical interfaces are almost identical, the only thing
that prevents the 2000 keyboard from being used is the extra software that
is required to generate ASCII from the scan codes.
Starting with z80ctl 3(122), which is included in this area, the software
necessary to operate both the 16A/16B/6000 and the 2000 keyboards is
included.
To make XENIX easier to use with the new keyboard and keep compatibility
with the old keyboards is a complicated task.
MAKING IT ALL WORK REQUIRES SOME HELP
When you reach the Xenix Boot> prompt, a decision is made as to what type
of keyboard you have. At this point, the first key pressed is of a
small group, and the system uses this to determine
what type of keyboard you have. If you press some other key as the
first key, the system may ignore that key or select the wrong
keyboard type. This is because some scan codes look exactly like normal
ASCII characters, and the boot track can make a mistake and select
the wrong keyboard type. If this happens, press RESET and try again, this
time avoiding pressing one of the "collision" keys.
The keys that the system "expects" as the first key struck are:
d h x z <ENTER> <BACKSPACE> <F1> <F2>
<CTRL><D> <?> <ESCAPE>
If you have autobooting enabled, then it is possible that no key will be
pressed when the system reboots. When this happens, the boot code first
looks to see if z80ctl left the keyboard type in memory from the last time
it was running. (This is always true after a shutdown, and usually
true after a crash.) If there has been a power failure or some other
program has been run (like diskutil), this information may not
be present. In that case, the boot track selects the default keyboard
type by looking on the hard disk. This value is set to Model 16B/6000
by default, and can be changed using Patch to select the 2000 keyboard.
(Information on the one byte patch is provided below.)
CONVERTING YOUR SYSTEM
There are three major steps below. You will need to obtain the keyboard,
perform one of the two modifications listed, and install the software.
Obtaining the 2000 keyboard
The first step is to obtain either a 1000 or 2000 keyboard.
If you have a 2000 or 1000 system, you may want to get a new
keyboard anyway as the modifications you may have to make
may prevent it from working with the 2000 or 1000 computer
without removing them.
The part number for the 2000 keyboard is:
AXX-0225 KEYBOARD, M2000 W/CASE&CBL $183.93/EA
However, this part has recently been placed on the "No Longer
Available" list, and may not be obtainable. It may be
possible to obtain the equivalent by ordering the individual
parts as follows:
AXX-0220 90 KEY KEYBOARD $100.77/EA
AW-3203 KBD CABLE (2000) $7.80/EA
AZ-7114 KEYLID BOTTOM $8.67/EA
AZ-7121 KEYLID TOP (BEZEL) $4.52/EA
AHD-2773 SCREW 6x7/16 PPH (8 required) $1.00/EA
If you are unable to obtain all of these parts, then you
can obtain a 1000 keyboard and either replace the connector
or the entire cable with the cable used on the 2000 keyboard.
Here is the 1000 keyboard part number:
AXX-0235 KEYBOARD ASSY, MOD 1000 CMPLTE $117.53/EA
You may now either replace the connector with a DIN-5
Cat. No. 274-003 $1.59/EA, or you can replace the entire cable
and connector by ordering the 2000 keyboard cable:
AW-3203 KBD CABLE (2000) $7.80/EA
All the prices are subject to change and availability, so
contact your local store or National Parts for more information.
Once you have obtained the equivalent of a 2000 keyboard and
cable, follow the instructions below. Be sure to use the
instructions that are meant for the type of machine you own.
Instructions for connecting the 2000 keyboard to a Model 16A.
If you have a Model 16A (identified by having the keyboard
cable plug into a plug built into the keyboard), then
no modification to the keyboard is required at all. You
must construct a gender-converting cable. This can be
built using a piece of five conductor wire and two
female DIN-5 connectors. The connectors are available
from Radio Shack, Cat No. 274-006, and were $1.59 ea. in the
1987 catalog.
When wiring the cable, simply connect pin 1 to pin 1, 2 to 2, etc.
The pins are marked, but are sometimes hard to see except
under a strong light. After you complete the assembly, you
should use an ohmmeter to confirm there are no shorts and that
the wiring is correct.
Now skip down to the software installation instructions.
Instructions for modifying the 2000 keyboard for the 16B and 6000.
1. Place the 2000 keyboard on a cloth with the keys facing downwards.
Lower the tilt-feet if they are raised. Then place a piece of
scotch tape across each leg and the back to prevent it from moving.
2. Remove the nine screws on the bottom. Now, hold the keyboard with
two hands and turn it over, making sure none of the screws are lost.
Once this is done, gently lift the top half of the cover and set
it aside. If the tilt-feet assemblies slip out of position, push
them back into place now.
3. Locate the AMP connector on the keyboard where the coiled cable
connects to the keyboard PCB. Unplug this connector. On some
units a glob of glue was used to keep the connector from slipping
off. This must be removed before the connector can be
disconnected.
4. Hold the plug and write down the color of the wires and which
position they have in the connector. A typical arrangement is:
+------------------+ <---plug end away from you
! 1 x 3 4 5 6 !
! !
! ! ! ! ! ! ! ! <---side with slits facing up
! ! ! ! ! ! ! !
! ^ ! ^ ^ ^ ^ ! <---locking hook (in slit)
! !
+------------------+
B N G Y R B NOTE: SOME CONNECTORS WERE
l o r e e a ASSEMBLED UPSIDE-DOWN AND
a e l d r ARE PLUGGED IN UPSIDE-DOWN.
c W e l e IF YOUR WIRING IS EXACTLY
k i n o BACKWARDS OF THE DRAWING,
r w MAKE SURE YOUR CONVERTED
e HOOKUP IS ALSO BACKWARDS.
5. By using the tip of a fine screwdriver or an X-acto knife, you
can remove the pins from the connector shell by pressing down
on the locking hook on each contact. These can be accessed
through the slits as shown in the illustration above. By pressing
down (with mild force) on the metal at the end of the
slit, the wire (and the pin) for that pin can be pulled out
of the connector shell. It may require a third hand for this
step; one to hold the connector, one to push the pin and one
to pull on the wire.
6. You will reposition the wires and re-insert them into the connector.
If your wires had the same colors as the example, your re-worked
connector should look like this:
+------------------+ <---plug end away from you
! 1 x 3 4 5 6 !
! !
! ! ! ! ! ! ! ! <---side with slits facing up
! ! ! ! ! ! ! !
! ^ ! ^ ^ ^ ^ ! <---locking hook (in slit)
! !
+------------------+
B N Y B G R
l o e a r e
a l r e d
c W l e e
k i o n
r w
e
When re-inserting the pins into the connector shell, make sure
the locking hook is facing towards the slit. Once inserted,
the pin should lock in place and a gentle tug should not dislodge
it. If the pin will not stay in the connector, then spread
the halves of the pin apart slightly and re-insert it.
It is highly important to get the re-wiring correct. +5 and Ground
are present in the cable and if +5 is shorted to ground, a
fuse inside the 16B/6000 will blow, requiring disassembly of
the 16B/6000 computer to fix.
If your wires do not match the above color code, it is
suggested that you write the names of the colors listed in the first
illustration on pieces of tape and attach those names to the
wires as shown in the illustration, IGNORING the actual colors
of the wires. Then re-wire the connector based on the labels.
Leave the labels on after finishing your work so that you can
undo your work if you ever want to use the keyboard on a 2000
or 1000 system in the future.
7. Re-assemble the keyboard by placing the top half over the keyboard.
Then turn the keyboard upside down, and re-insert the screws.
Make sure the tilt-legs are still lined up properly.
Installing the software
Before hooking up your modified keyboard, you need to install
the software to utilize it. The enclosed install script will
install the files and make the necessary changes to /etc/termcap.
Once you have shut XENIX down, leave the computer turned on
and plug in the 2000 keyboard. Immediately press the CAPS
key. If the light does not come on instantly, turn the computer
off at once or unplug the keyboard. Failure of the light to
illuminate indicates one of the modifications is incorrect.
Plug your old keyboard back in and turn the computer back
on. Press the CAPS key and confirm that the light comes on.
If it does not, then you have blown the keyboard fuse inside
the 16B/6000 and it must be replaced before any console
keyboard will function. The computer must be disassembled
to reach the inline fuse holder, located near the keyboard
plug.
If the CAPS light did operate on the 2000 keyboard, press RESET
and at the Xenix Boot> prompt, press <ENTER>. The word 'xenix'
should appear. When XENIX starts running, an asterisk should
appear in the top right corner of the screen. This indicates
that the system thinks you have a 2000 keyboard.
If you did not allow the script to change the /etc/ttytype file,
you should do that now manually so it reflect the keyboard you
plan to use.
Additional information
At this time, diskutil does not know about the 2000 keyboard.
Your existing 16/6000 keyboard must be used when using diskutil.
This should not be a serious problem, since floppies and
disk cartridges can be formatted while running XENIX.
You can switch back and forth between keys while at the
Xenix Boot> prompt as long as you press RESET after connecting
the keyboard you are about to use.
In the case of unattended power failures, some systems are
configured to autoboot. In this case, there will be no information
in RAM on what keyboard is present. In this event, the boot track
examines a location on the disk. You can use the patch utility to
indicate what type of keyboard to use when the boot track is unsure.
The byte in /dev/hdbt0 at offset 0x10 controls what keyboard
will be used. A zero indicates the 16B/6000 keyboard should
be assumed. A 0x01 indicates the 2000 keyboard should be assumed.
The files in this directory may be used by any system that is
using XENIX 3.2.0. Earlier versions will not boot successfully.
The development system is not a requirement for using these
files.
Although there are several international versions of the 1000 and
2000 keyboards, they are not supported by this software and
may not function. This software is intended for use with the
90-key (USA) keyboard.
Because the 16/6000 hardware does not reset the keyboard microprocessor
when RESET is pressed, the status of the CAPS and NUM LOCK keys
will be unknown to XENIX when it boots. XENIX always assumes
that CAPS LOCK and NUM LOCK are NOT lit when XENIX boots.
If that is not the case, you will have to press the CAPS or NUM LOCK
key once to get XENIX in sync with the keyboard.
Keyboard Codes
The following is a table of the codes produced when keys are
pressed using the 2000/1000-style keyboard under XENIX.
The majority of the codes are generally what would be
received in a MS-DOS environment and should make the conversion
of software easier. On "Extended" character codes, a 0xff is
prefixed to the code. (In MS-DOS systems, the prefix byte was 0x00.)
The table is shown assuming NUM LOCK is ON and CAPS LOCK is OFF.
Key Unshifted Shifted Ctrl Alt
<Escape> 0x1b (^[) 0x1b (^[) 0x1b (^[) 0xff8b
<1> 0x31 (1) 0x21 (!) 0x7c (|) 0xff78
<2> 0x32 (2) 0x40 (@) 0x00 0xff79
<3> 0x33 (3) 0x23 (#) 0x1d 0xff7a
<4> 0x34 (4) 0x24 ($) 0x1e 0xff7b
<5> 0x35 (5) 0x25 (%) 0x1f 0xff7c
<6> 0x36 (6) 0x5e (^) 0x7e (~) 0xff7d
<7> 0x37 (7) 0x26 (&) 0x1c 0xff7e
<8> 0x38 (8) 0x2a (*) ---- 0xff7f
<9> 0x39 (9) 0x28 (() 0x5c (\) 0xff80
<0> 0x30 (0) 0x29 ()) 0x7c (|) 0xff81
<-> 0x2d (-) 0x5f (_) 0x1f 0xff82
<=> 0x3d (=) 0x2b (+) ---- 0xff83
<Backspace> 0x08 0x08 0x7f (delete) 0xff8c
<Tab> 0x09 0xff0f 0xff8d 0xff8e
<Q> ** 0x71 (q) 0x51 (Q) 0x11 0xff10
<W> ** 0x77 (w) 0x57 (W) 0x17 0xff11
<E> ** 0x65 (e) 0x45 (E) 0x05 0xff12
<R> ** 0x72 (r) 0x52 (R) 0x12 0xff13
<T> ** 0x74 (t) 0x54 (T) 0x14 0xff14
<Y> ** 0x79 (y) 0x59 (Y) 0x19 0xff15
<U> ** 0x75 (u) 0x55 (U) 0x15 0xff16
<I> ** 0x69 (i) 0x49 (I) 0x09 0xff17
<O> ** 0x6f (o) 0x4f (O) 0x0f 0xff18
<P> ** 0x70 (p) 0x50 (P) 0x10 0xff19
<[> 0x5b ([) 0x7b ({) 0x1b ----
<]> 0x5d (]) 0x7d (}) 0x1d ----
<Enter> 0x0d 0x0d 0x0a 0xff8f
<A> ** 0x61 (a) 0x41 (A) 0x01 0xff1e
<S> ** 0x73 (s) 0x53 (S) 0x13 0xff1f
<D> ** 0x64 (d) 0x44 (D) 0x04 0xff20
<F> ** 0x66 (f) 0x46 (F) 0x06 0xff21
<G> ** 0x67 (g) 0x47 (G) 0x07 0xff22
<H> ** 0x68 (h) 0x48 (H) 0x08 0xff23
<J> ** 0x6a (j) 0x4a (J) 0x0a 0xff24
<K> ** 0x6b (k) 0x4b (K) 0x0b 0xff25
<L> ** 0x6c (l) 0x4c (L) 0x0c 0xff26
<;> 0x3b (;) 0x3a (:) 0x7e (~) ----
<'> 0x27 (') 0x22 (") 0x60 (`) ----
<Up Arrow> 0xff48 0xff85 0x1e 0xff91
<Left Arrow> 0xff4b 0xff87 0xff73 0xff92
<Z> ** 0x7a (z) 0x5a (Z) 0x1a 0xff2c
<X> ** 0x78 (x) 0x58 (X) 0x18 0xff2d
<C> ** 0x63 (c) 0x43 (C) 0x03 0xff2e
<V> ** 0x76 (v) 0x56 (V) 0x16 0xff2f
<B> ** 0x62 (b) 0x42 (B) 0x02 0xff30
<N> ** 0x6e (n) 0x4e (N) 0x0e 0xff31
<M> ** 0x6d (m) 0x4d (M) 0x0d 0xff32
<,> 0x2c (,) 0x3c (<) ---- ----
<.> 0x2e (.) 0x3e (>) ---- ++ ----
</> 0x2f (/) 0x3f (?) 0x5c (\) ----
<Print> ---- ---- 0xff72 0xff46
<Space> 0x20 ( ) 0x20 ( ) 0x20 ( ) 0xff20
<F1> 0xff3b 0xff54 0xff5e 0xff68
<F2> 0xff3c 0xff55 0xff5f 0xff69
<F3> 0xff3d 0xff56 0xff60 0xff6a
<F4> 0xff3e 0xff57 0xff61 0xff6b
<F5> 0xff3f 0xff58 0xff62 0xff6c
<F6> 0xff40 0xff59 0xff63 0xff6d
<F7> 0xff41 0xff5a 0xff64 0xff6e
<F8> 0xff42 0xff5b 0xff65 0xff6f
<F9> 0xff43 0xff5c 0xff66 0xff70
<F10> 0xff44 0xff5d 0xff67 0xff71
<Hold> Alternately generates a 0x13 (^S) and 0x11 (^Q)
{7} + 0x37 (7) 0x5c (\) 0xff93 *
{8} + 0x38 (8) 0x7e (~) 0xff94 *
{9} + 0x39 (9) 0xff49 0xff84 *
<Down Arrow> 0xff50 0xff86 0xff96 0xff97
{4} + 0x34 (4) 0x7c (|) 0xff95 *
{5} + 0x35 (5) 0x35 (5) ----
{6} + 0x36 (6) 0x36 (6) ---- *
<Right Arrow> 0xff4d 0xff88 0xff7f ----
{1} + 0x31 (1) 0xff4f 0xff75 *
{2} + 0x32 (2) 0x60 (`) 0xff9a *
{3} + 0x33 (3) 0xff51 0xff76 *
{0} + 0x30 (0) 0xff9b 0xff9c *
<Delete> 0x2d (-) 0xff53 0xff9d 0xff9e
<Break> 0x03 0x03 0x03 0xff03
<Insert> 0x2b (+) 0xff52 0xff9f 0xffa0
{.} 0x2e (.) 0xffa1 0xffa4 0xffa5
{Enter} 0x0d 0x0d 0x0a 0xff8f
<Home> 0xff47 0xff4a 0xff77 0xffa6
<F11> 0xff98 0xffa2 0xffac 0xffb6
<F12> 0xff99 0xffa3 0xffad 0xffb7
---- No code is produced for this keystroke sequence
* While the ALT key is held down, any keys that are
pressed on the numeric keypad are saved. When the ALT
key is released, the resulting decimal number is converted
to binary and passed to XENIX as a single 8 bit character.
If more than three keys are pressed, only the last three
are used. The most significant digit is entered first. If
a number larger than 255 is entered, it will be output
as modulo-256. To produce multiple characters, the ALT
key must be released, then pressed and a new sequence can
be entered.
** When CAPS LOCK is on, the codes listed in the Shifted
column will be produced even when unshifted.
+ When NUM LOCK is OFF, the codes listed in the
Unshifted and Shifted columns are exchanged.
++ This keystroke toggles the screen saver on and off.
XENIX will not see a character when this key is pressed.
When the screen saver is enabled, the screen will go
dark at once as a confirmation. The next key pressed
(ANY key including SHIFT and CTRL) will turn the display
back on.