Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!lll-lcc!pyramid!voder!apple!lsr From: lsr@apple.UUCP (Larry Rosenstein) Newsgroups: net.micro.mac Subject: Dead Keys Message-ID: <94@apple.UUCP> Date: Mon, 28-Jul-86 21:01:21 EDT Article-I.D.: apple.94 Posted: Mon Jul 28 21:01:21 1986 Date-Received: Tue, 29-Jul-86 01:52:53 EDT Organization: Advanced Development Group, Apple Computer Lines: 42 Keywords: dead keys, MacTerminal, Red Ryder {} A long time ago there was a discussion of using the Option key as Control in Red Ryder. The problem is that certain option key combinations (eg., Option-e) are dead keys and don't generate a character until the next key is typed. Contrary to the messages posted at the time, it is very easy to disable dead keys in the keyboard driver (although I'm not sure that this has been documented). MacTerminal does it, in fact. Basically, there are 2 resources (pieces of code, actually) that map raw keycodes, generated by the keyboard, into ASCII characters. One resource handles the main keyboard and the other the external keypad. It is possible to completely replace these resources if you want to modify the mapping in some unusual way. Turning off dead keys, however, is very easy and already provided in the system. Low memory location $29E contains the address of the main mapping function. The resource begins with a 2-byte BRA instruction, followed by a 1-byte flag. If the flag is $FF then dead keys are on, if it is $00, then dead keys are off (ie., typing option-E will give you an accent character immediately). It's as easy as that. Programs that turn off dead keys should make sure to re-enable them when they terminate. It would be trivial to write a desk accessory that allows you to enable/disable dead keys at any time. Then it might be more convenient to use the Option key in Red Ryder. I hope this helps current and future terminal emulators. -- Larry Rosenstein Object Specialist Apple Computer AppleLink: Rosenstein1 UUCP: {sun, voder, nsc, mtxinu, dual}!apple!lsr CSNET: lsr@Apple.CSNET