The Standard Keyboard to go with the CoCo5 looks like this.
This keyboard works almost identacly to the CoCo 3 keyboard.
The keyboard interface diagram
Figure 2
To allow reduced cost for prospective buyers there are some alternative keyboard options.
The keyboard it's self has no particular smarts but it is directly connected to CPU#0 which passes keys on to whichever
The CoCo 5 supports an enhanced keyboard where when the Fn key is
depressed
the 1 .. 0 keys across the act as programmable function keys where
unsifted keys
have a global definition and in the case of the CoCo5 the ALT
function keys are set
for each virtual coco individually.
Keys can either be programmed by the Fn Key Configuration Screen or
by the SET command of Executive System Controller.
The syntax of SET for this purpose is.
SET Fn = $TRING
or
SET FOR #c aFn = $TRING
In the above n is a number from 1 to 9 that sets the
function key
you are dealing with as F1 to F9 or ALT-F1 to ALT-F9.
$TRING is a Quotes delimited text string that uses the
Keyboard Macro
Language to tell the Function key what to do when pressed.
The c is the CPU number 1,2 or 3
The a you type literally and it indicates you are
programming the ALT Function.
Also SET FOR #c1 aF(x..y) CLONED
FROM #c2
Indicates that you want the range aFx to aFy that is programmed
into cpu #c1 to be
be copped into the range aFx to aFy for cpu #c2.
This can be undone with the command CLONE UNDO but only for
the last range cloned and
only if you have not powered down or done a FULL SYS RESET.
The special codes { Control Strings } for the Keyboard
Macro Language are listed below.
Note ^ means literally type a Caret.
^A An Arrow key follows see details
below.
^B The BREAK key. B must be
upercase.
^b Bell Sound
^C The CLEAR key. C must be
upercase.
^c$k Types [CTRL][$k] where $k =
a ... z or [CTRL][SHIFT][$k] where $k = A ... Z.
^D Print out the current date
optionally ^DT can be used to print both date and time.
^E The ESC key.
^I Pop up Info text see details
below.
^M Multi codes see details below.
^N Enter
^P Prompt for user input see
details below.
^Q Type a quote ie [SHIFT][2]
^R Enter same as ^N
^T Print out the current time.
^Sn Print n blank spaces.
^? Accept user input until user
presses [Enter].
^?n Where n=1 to 9 accepts 1 to 9
keys typed by the user before continuing the macro.
^^ Prints one Caret see
details below.
All other text is passed through as-is in the Macro.
Details about the more complex macros codes.
^A This code is ignored unless followed by C U
D L R H or PU PD
These do the
following.
^AU = Arrow Up
^AD = Arrow Down
^AL = Arrow Left
^AR = Arrow Right
^AH = Go to start of
current line.
^APU = Page Up
^APD = Page Down
^ACU = CTRL Arrow Up
^ACD = CTRL Arrow Down
^A> = CTRL Arrow Left
^A< = CTRL Arrow Right
Some examples.
^A
Example #1
If you programed [ALT][Fn][5] as
follows
SET FOR #3 aF5 = "^AH ^S5^ADH ^S5^ADH ^S5^ADH.^S5^ADH ^S5^ADH
^S5^ADH ^S5^ADH ^S5^ADH ^S5^ADH ^S5^ADH ^S5^ADH"
What would it do ?
It would put your cursor at the start
of the current line than type 5 spaces take your cursor down one line and
to the beginning of the line
then five more spaces and this would
repeat 10 times, you can see how this would be useful to indent a bunch of
lines in a file.
Note that ^ADH means
the same as ^AD ^AH and the whole string would be the same because
the character immediately after the arrow string is ignored.
This is because the first character
after a control string is ignored unless it is a ^ starting another
control string, but arrow strings do not.
SET FOR #3 aF5 =
"^AH.^S5^ADH.^S5^ADH ^S5^ADH.^S5^ADH ^S5^ADH.^S5^ADH ^S5^ADH.^S5^ADH
^S5^ADH.^S5^ADH ^S5^ADH.^S5^ADH ^S5^ADH.^S5^ADH"
would do exactly the same thing since
all the periods would be ignored.
Example #2
If you programed [ALT][Fn][6]
as follows
SET FOR #3 aF6
= "^ADDDDDRRRRRRRRRR"
When you pressed [ALT][Fn][6]
you would arrow down five times and the to the right 10 times.
Of course this would only apply to
CPU#3 "CoCo RED" if you always wanted [Fn][6] to do
this you would instead program
SET F6 =
"^ADDDDDRRRRRRRRRR"
or run the three commands:
SET FOR
#3 aF6 = "^ADDDDDRRRRRRRRRR"
SET FOR
#2 aF6 = "^ADDDDDRRRRRRRRRR"
SET FOR
#1 aF6 = "^ADDDDDRRRRRRRRRR"
witch will program [ALT][Fn][6]
the same for all three CPU's.
^I
I is for information
If you programed
[ALT][Fn][5] as follows
SET FOR #3 aF6 =
"^C^b^I BASIC USER You have Cleared the Screen !.OS9 USER You have
switched screens!."
If you programed
[ALT][Fn][6] as follows
SET FOR #3 aF6
= "^IPYou Will Arrow Down 5 rows and right 10. Press BREAK to ABORT or
any alpha key to continue..^ADDDDDRRRRRRRRRR"
Now when you press
[ALT][Fn][6] you will get a popup in the middle of your screen
that says
You Will Arrow Down 5 rows and
right 10.
Press BREAK to ABORT or
any alpha key to continue.
Note single dots are echoed and followed by a carriage return double dots are echoed as a single dot and conclude the popup message and !. : and ?. echo ! , : and ? respectively and then conclude the popup message. Note that while ^I would only display the prompt and follow with the action of no mater what key you typed ^IP responds to the BREAK key to abort the rest of the macro.
This is what you type to type one
Caret
^^n types n Carets.
If in the Executive Settings Control Interface Program you
type the command START KEYMACGUI you will get a gui interface for
reprogramming the keyboard. If you are on a vga monitor capable of 960x600
or higher resolution the current screen will hide and be replaced by the
screen shown in Figure 3 below.
If your monitor is limited to 800x600 or lower resolution or is a composite monitor then the current screen will hide and be replaced by the screen shown in Figure 4 above. For VGA screens higher then 960x720 as well as 800x600 VGA the rest of the screen is filled by the background wallpaper. For composite monitors mode F03 720x576 is forced.
In dual monitor systems the other monitor continues to display what it
was displaying before.
Also in dual monitor systems the command START KEYMACGUI ON
COMPOSITE causes the keyboard macro interface to be displayed on the
composite interface even though a VGA screen is available.