Path: utzoo!mnetor!uunet!mcvax!diku!jesper From: jesper@diku.UUCP (Jesper L. Lauritsen) Newsgroups: comp.sys.atari.st Subject: Re: Re: (Beta) Gulam Key table Message-ID: <3554@diku.UUCP> Date: 30 Nov 87 13:09:34 GMT References: <1541@brahma.cs.hw.ac.uk> <573@cernvax.UUCP> Organization: DIKU, U of Copenhagen, DK Lines: 65 Keywords: It's great once modified. In article <573@cernvax.UUCP> jmg@cernvax.UUCP (jmg) writes: >In article <1541@brahma.cs.hw.ac.uk> neil@cs.hw.ac.uk (Neil Forsyth) writes: >>If you have a hex/ascii file editor you can modify the latest (beta) version >>of Gulam to work with the UK keyboard. The keyboard table is at offset $13B76 >>from the start of the file GULAM.PRG. Don't paste a completely new key table >>here just modify the necessary keys ie. \ to a #. Do this on all three tables. >Remember, though, that UK Ataris have the pound sign (and also an >"overline", the reverse of underline). These have Atari codes greater >than 80 hex. If you put these codes into the Gulam table they do not >work! >The same problem (but worse) applies to German and French models. and Danish and Swedish and .... >How about a Gulam which can handle this (or can it, and I just do not >know how)? Some months ago someone from Iceland had a major flame on the ignorance of American (and English) software writers. Apparently it didn't help a bit. Well, Gulam is great once modified so here is some hints how to modify it. This is from memory and somewhat unprecise. Mail me if you want more specific directions. First you must know that Gulam reinstalls its own key tables after each command, so there is no way around patching the code. The reason for this is (I think) that the key tables are defined so function keys etc. sends char's > 0x80. These char's are then bound to ue functions. This is sort of described in the Gulam doc's under the command to redefine key bindings. Now, the problem is that some of the chars that function keys etc. sends are national chars. Therefore first you change all 3 key tables so your "national keys" send the right char *and* so no function keys etc. sends your national char. You must of course make the function keys etc. send some other unused char. Second you must change the key bindings. Note that there are *two* sets of key bindings and not 3 as stated in the docs, one for *mini* and one for both *gulam* and other buffers. Also note that chars in the ranges 0x20-0x7f and 0xa0-0xff without any keybinding is default selfinsert, chars outside these ranges must have the binding 31 (from memory!) to self- insert. More specific you need to change the following bindings: For each national char do: If the char wasn't send by any of the function keys etc. and if it is in the ranges above you don't have to change anything. If the char is outside the ranges (or was sendt by a function key etc.) you must bind the char to 31. If the char previously was send by a function key etc. this char was bound to some ue function, the char the function key etc. *now* sends must be bound to that ue function. The bindings can be changed in two ways: you can use the gulam command to change bindings, or you can patch the code. The first way is of course the easyest but it has one big problem. The table of bindings for the *mini* buffer is full, so you can make no new bindings in that buffer. There is no problem in the other buffers. You may be able to live with no national chars in *mini*. If you want to use the second way, you must find the bindings tables in the code. I can not remember the address of the tables but they have a quite destinct format so they are not hard to find (I used DL II). The format is like what you get when you pressinside a buffer, and is sort of described in the gulam doc's. Please, please, please. When the final version of Gulam is done make it easyer for us europeans. Good luck to everybody, Jesper ------------- Jesper L. Lauritsen, U of Copenhagen, jesper@diku.UUCP or ibtjll@dkuccc11.BITNET