SUPERHERMES LITE
On-Disk Manual
(c) 1997 TF Services
INTRODUCTION
SuperHermes LITE has two main features:
Hermes - a replacement for the original QL 8049 keyboard, sound, and
serial port chip, also called an Intelligent Peripheral Controller
(IPC). The 8049 chip had a number of problems from the start (See
Appendix II).
Keyboard Interface - allows the use of standard AT or XT (IBM)
keyboards on the QL.
superHermes LITE in a interface board that plugs into the QL exactly
where the 8049 chip is. From the interface a cable connects the
interface to the external keyboard.
A software driver (extensions file) is loaded at boot time that
supports both the keyboard and the Hermes functions.
The keyboard is very configurable. The user may redefine what
characters are sent to the QL when specific keys are hit on the
keyboard. A number of differently configured drivers are included on
the disk, most defined by country. These drivers are configured for
the general QL user. Some additional configuration may be needed by
the user to get all they functionality they need.
Current Hermes Owners
If you already have a Hermes chip installed on the QL, this interface
replaces that chip both physically and in function. The superHermes
LITE software driver replaces your existing Hermes driver and includes
the software to handle the keyboard interface.
PACKAGE CONTENTS
The superHermes LITE package contains the following items:
superHermes LITE Interface
Keyboard Cable (to 5 Pin DIN)
This Manual
superHermes LITE Software Disk
The Disk contains the following files:
superHermesLITE_doc - This manual.
BOOT - Boot file.
KBDGEN_BAS - Keyboard Config. Program.
config - Standard QJump config program.
For each country it includes:
IPCEXTxx_BIN - LRESPR'able driver/extensions file.
IPCEXTxx_ROM - ROM'able driver.
KBD_xx_BAS - Keyboard Config. program.
BOOTxx - BOOT file.
Be sure to make a copy of the distribution disk and use this as your
working copy and only make changes to your working copy disk.
INSTALLATION
There are two items to install for superHermes LITE; the interface and
software driver. It is recommended that you change your boot file to
reflect the new driver before you install the interface. The keyboard
will not work without the software driver.
If you do not wish to change your boot file, there is a boot file on
the installation disk that you can modify to supply the right driver.
There are drivers for different countries.
If you do change your boot file, be sure to copy the proper drivers to
your boot disk from the installation disk.
SOFTWARE DRIVER
The software driver is loaded at boot time with either of the following
commands:
LRESPR FLP1_IPCEXTxx_BIN
or
a = RESPR size
LBYTES FLP1_IPCEXTxx_BIN,a
CALL a
xx stands for the country code of the driver you choose (see below).
If you are booting off of a different drive, such as WIN1_, you need
use it instead of FLP1_. Be sure to place the LRESPR command before
any HOT_GO or ERT_ commands.
If you have an existing Hermes chip, you will replace the older Hermes
driver with this new driver. Do not load both drivers.
Current drivers are:
IPCEXTUK_BIN 5558 bytes UK driver
IPCEXTUS_BIN 5542 bytes US driver
We have defined the unshifted key next to '1' as '`' thus making this
key combination the same as the QL key. The original IBM key can of
course be produced by pressing < CTRL SHIFT \ > as on the QL keyboard.
It is interesting that the standard QL UK layout is identical to the
IBM US layout (other than the ` sign) - a sign that Sinclair had his
sights on the US market?
IPCEXTAM_BIN 5542 bytes Alternative US keyboard driver
This is the similar to the 'normal' US keyboard above, but the |\ key
has moved to the right of the right hand shift. If you are unsure of
what keyboard you have, just run the programs and compare your IBM
keyboard layout.
IPCEXTDE_BIN 5562 bytes German driver
The key '\' is a 'third' key and not available as a direct key press.
As this is a direct key press on the German QL we have had to define
'\' as grave (unshifted key immediately to right of ) - you may like
to put a sticker on this key to remind you.
IPCEXTAG_BIN 5564 bytes Alternative German driver
This is an alternative German layout and has a narrow delete key, with
'#' and '\'/'/' to the left of it.
IPCEXTDA_BIN 5596 bytes Danish driver
The <1/2> key is not in the QL character set, so this is defined as @.
The QL doesn't have accent keys, so the IBM accent keys are defined as
`$. The QL doesn't have an acute accent, so that is defined as '|'
IPCEXTFR_BIN 5636 bytes French driver (normal shifted IBM numbers)
IPCEXTFN_BIN 5654 bytes French driver (unshifted IBM numbers)
Due to limits in the translation method, \ is defined using ALTKEY.
'#' is translated with '3' key, and '"' is top left ('2')
IPCEXTNO_BIN 5642 bytes Norwegian driver
There is no accent key on the QL so the IBM accent key is translated to
^ $. @ is available in the 'third' key position using the ALTKEY
supplied.
IPCEXTSW_BIN 5612 bytes Swedish driver
The <1/2> key is not in the QL character set, so this is defined as `.
The QL does not have accent keys, so this key is defined as $
(unshifted) and shifted as ^. Tilde cannot be accessed directly from
the QL keyboard, but this can obtained using ALTKEY (defined as ALT $
in our alt_swedish program)
IPCEXTIT_BIN 5606 bytes Italian driver
Due to limitations in the keyboard translating algorithm, we have been
unable to produce normal key presses for:
- this is produced by ALT SHIFT
- this is produced by ALT SHIFT
| - this is produced by ALT \ or ALT SHIFT \
This assumes you use ALTKEY (toolkit II) definitions in ALT_ITALIAN,
which also defines the 'third' keys. We are completely re-designing
the translation algorithms for all countries so that we can fully
define the very complex Italian keyboard.
INTERFACE INSTALLATION ( QL CASE )
Installing the interface is the most difficult part of the installation
process. It requires you to open your QL, pull out the 8049 chip (or
Hermes chip) and put in the interface. Be sure to read ALL of these
installation directions before opening your QL. Remember to take your
time and be gentle with your QL, it's getting old.
1. Unplug the QL.
Remove all incoming power from the QL. Depending on how your QL is
laid out, you may want to disconnect the monitor, serial cables, disk
drivers, etc. You will need to turn your QL upside down.
2. Unscrew the Case.
Turn the QL upside down. Remove the four short screws along the front
edge and the four long screws along the back edge. Do not touch the
other two screws as they go to the microdrives.
3. Opening the Case.
Turn the QL right side up. Carefully remove the top of the case.
Careful with the keyboard membrane connect to the motherboard. You may
have to unplug the keyboard membrane from the motherboard to get room
to work. Watch out for the wires connecting the microdrives lights to
the motherboard. If you do not plan to use the QL keyboard again, you
can remove the membrane at this time. You should be able to move the
top of the case to the back and expose the front of the QL including
the microdrives.
4. Locate the 8049 Chip.
Just to the left of MDV1_ is the 8049 chip. It is a long chip in a
socket (not soldered to the board). If you are a Hermes or other
keyboard interface owner, you know where this is. Using a small screw
driver or chip puller, gently ease it out of its socket (either the
8049, Hermes, or other interface). Take care not to bend any of its
legs, they might snap off. If there is an additional "spacer" socket,
you can remove it also. Be sure to put your old 8049, Hermes, or
interface away in a safe place, preferably with the legs in a piece of
stryofoam and in a plasic bag.
If you unplugged the keyboard membrane in the last step, and you still
want to keep the old keyboard, you can plug the membrane back into the
motherboard now. Be careful bending the membrane as it might crack.
5. Installing the SuperHermes Lite Interface.
Now place the SuperHermes Lite interface over the empty socket and line
up the legs with the socket. The main part of the interface will be
sticking out to the left of the socket. There is really only one way
to put the interface into the socket. Once the legs are lined up,
gently push the socket into place
Run the keyboard connecting cable through the expansion port to get it
out of the QL case. Plug the small end of this cable into the
interface.
Connect the hooded microclip (the small wire with a plastic hood) to
pin 30B of the expansion port. The expansion port is where the
(Super)Gold Card and disk drives are connected. Look at the expansion
port from the front of the QL (the expansion port will be on the left).
From the back of the QL, count forward three pins on the outer row of
the expansion port. This is pin 30B. You really can't reach the inner
row, only the outer row is exposed. Connect the hooded microclip to
this pin. Carefully attach it where it will not contact any other
pins.
6. Closing up the QL
Reverse the steps above to close up the QL. This includes putting the
screws back in and connecting the power, monitor, and other cables.
You are now ready to put the BOOT disk into the disk drive and test out
your new keyboard interface.
INTERFACE INSTALLATION ( IBM-STYLE CASE )
The installation of the interface on a QL mounted in an IBM-Style case
is is very similar to installing it in the QL case.
1. Disconnect the power cord and open the case.
2. Same as step 4 above.
3. Same as step 5 above.
4. The panel mounting keyboard socket should fit in the circular holein the case.
5. Replace the case cover and plug the power cord back in.
CONFIGURATION
BOOT-UP CONFIGURATION
The software driver file has a couple of options that are configured
with the standard QJUMP config program. This driver has been modified
from the full superHermes, so only two of the configurable options have
any significance with the superHermes LITE. These are the IPCENABLE
and Numlock On/Off options. The NumLock On/Off option allows the user
to choose of they want the NumLock key to be turned on or off when the
keyboard is initialized at boot time.
The run the config program, enter the following line:
exec flp1_config;"flp1_IPCEXTxx_BIN"
This will execute config with it reading the proper file. Just follow
through the config prompts to set the options. Be sure to save the
file before exiting config.
KEYBOARD CONFIGURATION
superHermes LITE comes with a program that lets you easily configure
the keyboard. Simply stated, the you define what QL keys you want the
interface to send to the QL when you press an IBM key. To start the
keyboard configuration program, type:
lrun flp1_KBD_xx_BAS
This program will load and set variables defining what national
keyboard you are using. It then MERGEs the main keyboard configuration
program. If this MERGE does not work, just type RUN and continue on
from there. It will take a few moments for the program to load. Give
it some time.
Once the program loads, you will see a drawing for two keyboards. The
upper keyboard is the QL keyboard, the lower one is the AT keyboard.
There are also some extra "keys" just above the numeric keypad on the
IBM keyboard. These are the program command keys. The other "keys"
just to the right of the QL keyboard can essentially be ignored. This
program was written by the superHermes LITE developer and were needed
only by him.
A Help menu is displayed at the bottom of the screen. Hitting the F1
key will page through all of the help screens, in an endless loop.
The keyboard configuration program has a number of commands. They are:
F1 - More help
Same as '???' key.
F2 - Load the full translation table from the current
IPCEXTxx_BIN file.
Same as 'GET' key.
F3 - Save the translation file to IPCEXTxx_NEW.
Same as 'PUT' key.
F4 - Toggle IBM SHIFT key.
F5 - Toggle IBM NumLock key.
SPACE - Select current key.
ENTER - Select current key.
TAB - Toggle between 2 cursors.
F12 - Save translation file in DATA statements.
(CTRL-F2)
ESC - Exit the program.
You operate the program by using the arrow keys to move the cursor
around. You select keys or command by using the SPACE or ENTER keys
(along with the function keys).
The general process for configuring a key is this:
- Select key or key combination on IBM keyboard.
This will display the current setting on the QL keyboard.
- Select the key or key combination you want on the QL keyboard.
(Remember SPACE or ENTER toggles key on or off)
You will do this for each and every key you want configured. An
example is this:
Have the PgUp and PgDwn keys on the IBM keyboard send the proper QL key
combination for Page Up and Page Down. On the QL the Page Up key
combination is ALT Up Arrow and Page Down is ALT Down Arrow. Here are
the following steps:
- Move the cursor to the PgUp key on the IBM keyboard.
- Hit the SPACE bar to select this key.
- Move the cursor to the QL ALT key.
- Hit the SPACE bar to select this key.
- Move the cursor to the QL Up Arrow key.
- Hit the SPACE bar to select this key.
You are now done with the PgUp key. You can now move on to the PgDn
key:
- Move the cursor to the PgDn key on the AT keyboard.
- Hit the SPACE bar to select this key.
- Move the cursor to the QL ALT key.
- Hit the SPACe bar to select this key.
- Move the cursor to the QL Down Arrow key.
- Hit the SPACE bar to select this key.
When you changed to a different key on the IBM keyboard, you current
setting is saved to memory. Only when you are completely done do you
want to save the whole configuration to disk. You do this by hitting
the F3 key or selecting the PUT 'key'. The configuration will be saved
with the name flp1_IPCEXTxx_NEW. Be sure that there is enough room on
FLP1_ to save the file. The program will load in the old keyboard
configuration and then save the new keyboard configuration. This can
take a few moments. If there are any QL keys that have not been
defined with an IBM key, the program will report this before the
configuration is saved. You will need to correct the problem before
the configuration can be saved.
The keyboard configuration program defaults to FLP1_. This can be
changed by editing the KBD_xx_BAS program and changing any occurance of
FLP1_ to what ever device you want (MDV, WIN, etc.).
Keyboard Configration Hints
Before you start the keyboard configuration program, sit down and map
out all keys that you want to configure and what the appropriate QL key
or key combination is.
Optional Methods of Keyboard Configuration
The KBD_xx_BAS program includes a number of DATA statements that hold
the keyboard configuration. You can manually edit the DATA statements
to configure the keyboard. The knowledge to do this is very detailed
on involved it is not recommended for most users. The file
KEYBOARD_DOC provides further details on configuring the keyboard this
way. The keyboard configuration program uses the F12 key (CTRL-F2) to
save the current configuration to a file as DATA statements.
HERMES EXTENSIONS
To make it easy to utilise the new features offered by Hmermes, a small
set of SuperBASIC extensions are supplied (they are included in the
software driver). Other than IPCVER$, the extensions will report "not
found" if a non-Hermes IPC is present.
Since the SuperHermes Lite is a cut-down version of SuperHermes, it
does not have the full Hermes functionality in the extensions. A
number of Hermes commands are not supported or have diminished
functionality.
IPCVER$
This function tells you what version of IPC you have. It will return
the version number, a dot and the revision number as a text string.
For non-Hermes IPCs, it will always return "0.0".
Syntax: PRINT IPCVER$
RXBAUD%
This function reads and sets the serial port input rates. Albin
Hessler's v2.04 or greater serial mouse driver will now allow use with
Hermes split baud rates.
Syntax: RXBAUD% (parameter%)
parameter% give the port and value to send. The result is the old
value, including whether the port is open or not. The value consists
of the following:
bit 7: Send 0=ser1, 1=ser2. Return 0=open or 1=closed. (code 128)
bit 6: Set if BAUD command is not to affect this input port. (code
64)
bits 3 - 0: Standard baud rates (bit 4 is ignored at present) code
0-7 = 19200, 9600, 4800, 2400, 1200, 600, 300, 75. codes 8-15
duplicate the above, at present, but will be used for additional baud
rates, e.g., RTTY speeds.
All other bits are reserved and must be zero. E.g. To pick off ser1
receive to be used for a mouse operating at 1200 baud only, one would
do
rx0% = RXBAUD%(64+4)
(provided a modified serial mouse driver is installed). If this is
done before anything else, rxo% will be set to 129, showing that ser1_
was not open (128), and it was being affected by the normal "BAUD" (no
64) and its current baud rate was 9600 (1). If other compiled jobs,
etc., change the baud rate, or you do a new "BAUD 19200" say, ser1
input will stay running at 1200 baud. To revert to what was there
originally, you could do a
PRINT RXBAUD%(rx0% && 127)
which would print 68 if the port was open, or 196 if it was closed.
IPCEXT
This may be used to set the audible keyclick. Its full function is
limited on the SuperHermes Lite.
Syntax: IPCEXT command%
command% may be one of the following:
6: keyclick off
7: keyclick on
All other value apply only to Hermes or SuperHermes and are ignored.
IPCENABLE and IPCDISABLE
Syntax: IPCDISABLE feature%
Syntax: IPCENABLE feature%
The only applicable value for feature% is 6, which sets the IPC
interrupt status. Defaults in extensions CONFIG block. Enable IPC
interrupt for full 19200 bps for ser1/2 receive.
PROBLEMS WITH THE OLD 8049 IPC
Serial Input
Serial input requires signal from the QL when its character recieve
buffer is full (ser1 CTS - Clear To Send and ser2 DTR - Data Terminal
Ready). This could easily not be activated in time by the 8049, due to
badly designed code in the chip. It results in, at best, the loss of
incoming characters, or at worse, a "serial overrun" where the serial
ports "hordes" a number of characters and only doles them out when a
new character comes in. This was seen mostly when using a modem. This
"serial overrun" can only be stopped by reseting the QL.
Keyboard Handling
Key rollover (especially when shift keys are involved) does not work
well. When keys are pressed there is a tendency for unwanted repeat
characters ( key bounce ) to appear. They occurred mostly in early
versions of the 8049, when a key was typed and the neighboring key was
also touched. Add-on keyboards, such as the Schoen or Keyboard
Products, where especially prone to this problem, resulting in a
slightly "crackly" key.
Baud Rates
Independent baud rates are not possible with the current 8049. Input
at 9600 baud requires two stop bits, where the industry standard is one
stop bit. Input at 19200 baud is impossible.
Sound
"Fuzzy" and "random" on sound commands shift the underlying pitch.
Sound duration is dependent on the pitch.
MINERVA CONSIDERATIONS
The Minerva soft resets (CALL 390, and CTRL ALT SHIFT TAB) and
Miracle's RES_128 cause problems with (Super)Gold Card as Miracle
Systems patch out the reset command in their copy of the ROM code, so
the PIC on the superHermes LITE is not reset, and it thinnks keys are
still being held down on the AT keyboard. We are working on ways
around this, which may involve patching the (Super)Gold Card protected
RAM area. For the present, CTRL ALT SHIFT TAB will not work. To use,
for instance, CALL 390,17 from the keyboard, use PAUSE 40: CALL 390,17.
This ensures that there are no pending key presses. CALL 390 from
programs should be OK, unless key presses are pending when it is
invoked. RES_128 will not work with PAUSE 40 : RES_128.
KEYBOARD PINOUTS
superHermes Color Function Keyboard
------------------------------------------------
1 green clock 1
2 white data 2
3 yellow reset 3
4 black GND 4
5 red +5V 5
HARDWARE CONSIDERATIONS
If you find you are getting data input corruption using ser1/2 then
check the following
- Have you opened the QL port with handshaking enabled?
- Does your serial cable support handshaking. QL/CTS to
SENDER/CTS and QL/DTR to SENDER/RTS. Many leads have "loopbacked"
handshaking.
- Is the QL IC25 working? There should be output on relevant
handshake line of -12V to stop ser1 CTS/Pin 8 or ser2 DTR/pin 11. A
24D RS232 tester, with red/green leds, can help diagnose faults.
- Is the sending device set to accept handshaking? Check the QL
serial socket wires are all there and contacting the plug.
FALKENBURG HARD DISK DRIVE
The Falkenburg hard disk interface makes WIN1_ a higher priority boot
than FLP1_ (or even MDV1_). This means that if you make a WIN1_BOOT
error, or the WIN1_BOOT file loads but fails later due to a "bad
medium", and it has not yet loaded the superHermes LITE extensions,
then you will not be able to use the AT keyboard. It is suggested that
you put the following as your first lines, and do this BEFORE
installing superHermes LITE and AT keyboard (and make the necessary
change to the BOOT).
10 TK2_EXT
20 FLP_USE 'FLP'
30 IF FTEST('FLP1_BOOT')=0 : LRUN 'FLP1_BOOT'
This will allow you to boot off floppy disk, and load the superHermes
LITE extensions, if you get problems, unless of course 'WIN1_BOOT'
fails with bad medium. Clearly it is very desirable to use the
IPCEXTxx_ROM.
               (
geocities.com/siliconvalley/pines/Pines)                   (
geocities.com/siliconvalley/pines)                   (
geocities.com/siliconvalley)