Assistive Technology

ISSN: 1040-0435 (Print) 1949-3614 (Online) Journal homepage: http://www.tandfonline.com/loi/uaty20

Keyboard Emulation for Access to IBM-PC- Compatible by People with Motor Impairments

Heidi M. Horstmann M.S. , Simon P. Levine Ph.D. & Lincoln A. Jaros B.S.

To cite this article: Heidi M. Horstmann M.S. , Simon P. Levine Ph.D. & Lincoln A. Jaros B.S. (1989) Keyboard Emulation for Access to IBM-PC-Compatible Computers by People with Motor Impairments, Assistive Technology, 1:3, 63-70, DOI: 10.1080/10400435.1989.10132125 To link to this article: https://doi.org/10.1080/10400435.1989.10132125

Published online: 22 Oct 2010.

Submit your article to this journal

Article views: 10

View related articles

Citing articles: 1 View citing articles

Full Terms & Conditions of access and use can be found http://www.tandfonline.com/action/journalInformation?journalCode=uaty20 Assist Technol 1989 ;1:63-70 PRACTICAL NOTES © 1989 Demo s Publications

Keyboard Emulation for Access to I BM-PC-Compatible Computers by People with Motor Impairments

Heidi M. Horstmann, M.S., Simon P. Levine, Ph.D., and Lincoln A. Jaros, B.S.

Rehabilitation Engineering Program, Department of Physical Medicine and Rehabilitation, University of Michigan, Ann Arbor, Michigan

The goal of this paper is to aid both clinicians and vide full access to standard without requir­ developers in understanding the issues associated ing use of the keyboard. with alternative input systems that permit full ac­ This paper presents the advantages, compromises, cess to the IBM-PC family of computers. The first and shortcomings of various methods for alternative part of the paper discusses the concept of keyboard inputs to personal computers. The goal of this work emulation in general and reviews a variety of key­ is to aid both service providers and developers in board-emulation systems that are currently avail­ able. The capabilities of a system called ALTKEY, understanding the issues associated with alternative developed in our laboratory, are described. The sec­ input approaches permitting access to standard per­ ond part of the paperdiscusses the implementation of sonal application programs. a keyboard-emulation system in more detail, using This paper is divided into two parts. The first part ALTKEY as a specific example. Technical design is­ begins with a brief review of terminology and con­ sues are discussed, and successful approaches to cepts followed by an overview of the range of tech­ these design challenges are presented. niques available for alternative input. It concludes Key Words: Keyboard emulation-Alternative in­ with a description of the capabilities of a software­ puts-Computer access. based alternative input system for the IBM-PC and IBM-PC-compatible computers (PCs) called ALTKEY (1,2), developed in our laboratory. The second part presents the technical aspects of ALTKEY and com­ pares it to other software-based systems in order to The personal computeris an important tool offering address a number of issues involved with this type of unprecedented productivity in areas such as written approach to computer access. communication, financial analysis, and engineering design. For many disabled individuals with impaired motor functions, computer use is especially impor­ BACKGROUND tant. However, many of these people cannot use a A primary component of most alternative input standard computer keyboard. In response to this systems is the emulation of keyboard input through need, a number of techniques, generally termed al­ hardware and software. A keyboard emulatoris a sys­ ternative input systems, have been developed to pro- tem composed of hardware, software, or both, which passes user input to an application program (such as a or ) in a transparent This workwaspresented in part at the 8th AnnualIEEE fashion. "Transparent" implies that the computer Conference on Engineering in Medicine and Biology, Fort cannot distinguish between input coming from the Worth, 1986, and the 10th AnnualConferenceonRehabili­ standard keyboard and input coming from the alter­ tation Technology, San Jose, 1987. Address correspondence and reprint requests to Dr. S. native input system. Common keyboard emulation P. Levine at Rehabilitation Engineering Program, 1C335 systems include expanded keyboards, head pointers, University Hospital, Ann Arbor, MI 48109-0032, U.S.A. speech recognition, and special switches, each de-

63 signed to provide an alternative computer access keyboard entry to a given application program. Most method for individuals with motor impairment. Apple II programs obtain keyboard information by This paper focuses on keyboard-emulation systems reading the contents of a specific hardware location that use a memory-resident program for alternative called the keyboard register. This register stores an input. Memory-resident programs are a special class appropriate key code each time a key is pressed. The of computer software. They remain in memory once contents of this hardware register cannot be modi­ they are loaded and allow any standard software pro­ fied via software, so a software-based alternative gram to run while they are still present. Most of the input system cannot pass user selections to an appli­ time the application program runs normally, and the cation program through the standard keyboard regis­ resident program remains dormant. However, the ter. In addition, the power of the Apple II is severely resident program can be activated at any time by a limited by the small internal memory size. Most pro­ specific condition (such as a switch closure). When grams (.g., word processors and ) mo­ activated, the memory-resident program interrupts nopolize this storage space. This makes it awkward the application program for an instant, executes to write special input software that will reliably co­ its function (such as placing a user selection on the exist in memory with application programs from a screen), then deactivates itself so that the applica­ variety of publishers. tion can continue running. One of the most successful special input systems for the Apple II is a hardware-based system called OVERVIEW OF ALTERNATIVE the Adaptive Card (AFC)l (3). This inter­ INPUT APPROACHES face is a plug-in card that may be programmed to allow the user to enter information using a variety of Approaches to implementing alternative inputs methods including one- and two-switch scanning and can be classified into two broad categories: hardware Morse code. and software. Solutions that are primarily hardware­ The IBM-PC and PCs from other companies have based involve adding some active device or circuitry become standard equipmentin business, science, and to the computer system to perform keyboard emula­ higher education, largely because of their processing tion. For example, the standard keyboard can be re­ power and memory capacity. This, combined with a placed with a custom switch array plugged into the steady decrease in system cost, has made them an keyboard socket. A hardware-based system may excellent choice for the handicapped user. A number require specialized software as well. A headpointing of alternative input systems have been developed system, for instance, uses hardware to sense the us­ that provide transparentaccess to PCs for users with er's head position and software to translate that posi­ various degrees of motor impairment. tion into the desired "keypress." Most hardware­ An example of a hardware-based special input sys­ based systems have the disadvantage that the system tem for PCs is the MOD Keyboard.f developed in can only be installed on one computer at a time and 1983 (4). This system uses an additional computer, may be inconvenient to transport between different the Commodore VIC-20,3 to present scanning selec­ computers. tions to the user and a keyboard box to pass An alternative input system will be considered to the user's selections to the PC as if they were typed be software-based if it uses a computer program to directly on the PC keyboard. This is a hardware­ alter the way the existing computer system functions intensive approach that has the disadvantages of and only a minimal amount of hardware such as a using a large physical space and requiring the pur­ switch or joystick. With a software-based approach, chase of a second computer. It has the advantage of the alternative input system can be stored on mag­ reserving one full computer screen (the VIC-20's) for netic disk like any other program, making it easy to the presentation of scanning selections, so they do transport and install. Also, because there is no ex­ not interfere with video information on the PC screen. ternal circuitry required, the footprint of the system This dual-screen approach accommodates large char­ is minimized, and there are no additional power re­ acters or special color combinations for visually im­ quirements. These can be significant advantages for paired users. portable, battery-operated systems. The first alternative access systems were developed for the Apple II computer family . Most alternative lAFC , Don Johnston Developmental Equipment, Inc., input solutions for these are hard­ P.O. Box 639 ,1000 N. Rand Road, Building 115, Waucon­ ware-based systems. Software-based systems are da, IL 60084. 2MOD Keyboard, Tash, Inc., 70 Gibson Drive, Unit 12, very difficult to develop on the Apple II because of its Markham, Ontario, Canada L3R 4C2. internal hardware structure. Inorderfor any alterna­ 3Commodore Vic-20, Tash, Inc., 70 Gibson Drive, Unit tive input system to work, it must be able to simulate 12, Markham, Ontario, Canada L3R 4C2 .

64 ASS1STIVE TECHNOLOGY, VOL. 1, NO. 3 A second example of a hardware-based approach It is a memory-resident alternative input system for is replacement of the P C keyboard with a dedicated th e IBM-PC that supports single- and du al-switch communication aid , connected to the P C through a scanning and one- or two-switch Morse code input. keyboard emulator. The communication aid provide s Scanning selections, as well as Morse code sequences, the special input methods, and the keyboard emula­ are programmable and can be tail ored to the need s of tor ensures that the PC treats the user's selections the user. as if they came from the keyboard. This can be very effective but also expensive and bulky. In addition, ALTKEY CAPABILITIES many communication aid s have a single, fixed dis­ play. They lack the flexibility of a video screen to ALTKEY supports four input mod es: tai lor the input selections to individual user needs. row/ column, step, and inverse scanning, and Morse Software solutions to the special input problems code. In row/column scanning, the scan highlight are easier to implement on the IBM-PC than on the advances automatically un til the user selects a row Apple II for a number of reasons. First, the memory and th en a column. In step scanning, the highlight capacity of the IBM-PC is mu ch larger than that of advances one positi on for each switch hit, and in the Apple II. Unlike the Apple II, the IBM-PC was inverse scanning, th e highlight advances automatical­ designed to allow more than one program to be pres­ ly while the switch is held down. Step scanning, in­ ent in memory at one time. Thus, a memory-resident verse scanning, and Morse cod e can be used with ei­ program serving a keyboard emulation function can ther one or two switches. When used for scanning, be stored in memory at the same time as an applica­ ALTKEY presents the user with a series of input tion program. Finally, while Apple II programs ob­ choices listed across one line of the video screen. tain keyboard entry directly from hardware, IBM-PC These choices ar e highlighted one at a time in a re­ application programs obtain it from the operating peating pattern. The user makes a specific selection system, using keyboard control software routines." by activating a switc h when the desired entry is high­ These routines can be altered or replaced by memo­ lighted. The momenta ry switc h used for input can be ry-resident software designed for alternative input. connected to either a card, a Several computer-access systems have been de­ hand-shaking line, or to a modified keyboard as a veloped that are memory-resident and software-based. "hotwired" shift key (i.e., Control, Alt, or Shift key). One example is the P C AID.5 The P C AID supports a Each selection can perform one or more of the follow­ number of different input methods, including ex­ ing: (a) send a gro up of charact ers to the application panded keyboard, one- and two-switch Morse code, program,(b) display a new set of selectio n choices, and one- and two-switch scanning (5). Itrequires the and (c) execute a wide variety of commands such as use of some additional hardware to support the input generating spe ech output or changing the sca n rate. switches, in addition to the memory-resident soft­ The ability to call a new menu of selection choices ware that provides keyboard emulation. The "Virtu­ from a current one lead s to a bra nche d st ru cture for al Interface Module" (VIM) first de scribed in 1988 is selection choi ces. The entire list of menus is organ­ entirely software-based (6). The VIM supports a ized into a "scan tree," which ha s "branches" to number of different input methods, including one- to schematically represent the vari ous paths be tween four- switch scanning, and allows flexible custorniza­ selection menus. The scan tree is defined in an ASCII tion of user-selection options. Finally, several sys­ text file called a scan tree definition file. This file tems have been developed by Words+, Inc } includ­ contains all of the menu sel ections and is structured ing EZKeys for direct selection, Scanning WSKE for by a fixed set of synt actical rules. Scan tree defini­ sca nning input, and Morse WSKE for Morse code. tion files can be created and edited, providing cus ­ These combine alternative acc ess with features that tomization to meet the specific needs of a user. Ad­ are de signed to enhance input rate, such as word diti onally, separate scan tree definition files can be prediction. created for different application s and auto matically The main focus of this article, ALTKEY, was de­ loaded from the active scan tree. veloped in 1986 at the University of Michigan (1). CLINICAL APPLICATIONS OF ALTKEY The flexibility of the ALTKEY sys te m allows it to "The keyboard control routines are located in the BIOS meet a variety of ne ed s for a wide range of users in­ ROM, which consists of built-in softwareroutines that con­ cluding those with spinal cord injury, neuromuscula r trol input and output devices in the IBM-PC. 5PCAID, DADA, Inc., 1024 Dupont Street, Toronto, disease , head injury, and cerebral palsy. For ex­ Ontario, Canada M6H 2A2. ample, ALTKEY ha s been used as the ba sis for an 6Words+ , Inc., P.O. Box 1229, Lancaster, CA 93534. integrated augmentative communication and com-

COMPUT ERACCE SS BY MOTOR-IMPAIRED PEOPL E 6 5 puter-access system for nonvocal head-injured indi­ the name implies, it is present to perform some ser­ viduals who can use traditional orthography. Since vice in response to an interrupt generated by the the scan selections can be tailored to the needs of the . user, the system capabilities can be increased as the The primary function of AKSCAN is to perform key­ user's cognitive abilities and/or familiarity with the board emulation. The mostimportant design criterion system improve. For individuals who have difficulty is a high degree of compatibility with applications seeing the screen, auditory scanning can be employed. software as well as other memory-resident software. Another common application of ALTKEY uses The best way to ensure this is to use the standard two-switch (typically sip/puff) Morse code keyboard BIOS ROM routines wherever possible. The stan­ emulation for high-level quadriplegics. In some dard keyboard buffer could be used for highest cases, the ability to mix scanning with Morse code compatibility. However, this buffer only has the can help to improve efficiency. This combination al­ capacity for 15 characters, which places an undesir­ lows frequently used items that have long Morse able restriction on the length of scan selections and code sequences, such as the cursor keys, to be select­ Morse code equivalents. Therefore, AKSCAN has ed via scanning. an optional expanded keyboard buffer with a capaci­ ty of 128 characters. This means that scan selections can be several sentences long if desired. A high degree TECHNICAL ASPECTS OF ALTKEY of compatibility is preserved because the expanded The following section describes a number of im­ keyboard buffer is addressed by standard BIOS buf­ portant technical aspects of the ALTKEY system. fer pointers. Every "well-behaved" application pro­ This description is intended to illustrate important gram accesses the keyboard buffer only through these issues in the design of memory-resident keyboard pointers. The rare program that accesses the buffer and serve as a basis for discussing the ad­ directly may not be compatible with the expanded vantages and shortcomings of memory-resident al­ buffer, but the standard 15-character buffer can be ternative input systems for PCs. used for compatibility with these programs. The ALTKEY system, which was developed in as­ When a selection is made either from the scan tree sembler code and the "C" programming language, is or with Morse code, AKSCAN places it in the key­ composed of two programs. The first, called AKSCAN, board buffer. The standard keyboard continues to is a memory-resident program executed once each be active, so keyboard entry is also placed in the buf­ time the computer is booted. It contains the code fer via the standard BIOS keyboard service interrupt that implements the scanner and causes the user's routine. When an application program is ready to get selections to be treated as actual keyboard input. a character from the buffer, it generates a keyboard­ Since it is memory-resident, it remains in memory request interrupt and the standard BIOS routine even while other nonresident and memory-resident passes a character to the application program. programs are loaded and can be activated under ap­ In order to perform other functions, AKSCAN in­ propriate conditions. tercepts the video, keyboard request, and timer tick The second part of the system is named ALTKEY. interrupts. Whenever any of these interrupts is gen­ This is a nonresident program that reads and verifies erated by DOS or an application program, AKSCAN the scan tree definition file and loads the condensed becomes active and performs a variety of operations representation ofthe scan tree into the internal mem ­ as detailed below. ory buffer maintained by AKSCAN. It is executed each time the user wishes to load a new scan tree. Video Interrupt Programs use the video interrupt to send com­ ALTKEY's Memory-Resident mands to the hardware that controls the video screen. Component: AKSCAN AKSCAN intercepts the video interrupt, not to When AKSCAN is executed, it installs itself in change the standard function of the interrupt, but to memory and allocates a storage buffer for the scan signal AKSCAN that the video screen is about to tree. The program and the scan-tree buffer com­ change. This gives AKSCAN a chance to remove its bined take up 40 kB of memory. AKSCAN also in­ own scan line temporarily and restore the original serts new interrupt service routines into three of the line before the interrupt changes occur. Once the BIOS read-only memory (ROM) interrupts. An in­ video interrupt has finished, AKSCAN can record terrupt service routine is a short program that is the updated video line (for future screen restoration) activated by some internal or external condition. As and then return its scan line to the video display.

66 ASSISTIVE TE CHNOLOGY, VOL. 1, NO.3 Keyboard Request Interrupt The majority of the file is usually composed of group and entry items. In a tree analogy, a group item As discussed above, AKSCAN has no need to alter corresponds to a branching node, and an entry item the standard function of the keyboard request in­ corre sponds to a terminal node. Two information terrupt, which is to retrieve characters from the key­ fields are associated with the group and entry items: board buffer. However, it does have two other rea­ the screen display field and the action sequence. The sons to intercept this interrupt. The first concerns screen display field holds the text that will appear in video compatibility. To improve speed, many appli­ the scanner menu for that item. The action sequence cation programs do not use the video interrupt when represents the actions that result when the group or writing to the screen; this prevents AKSCAN from entry item is selected by the user. This sequence can intercepting the video information via the video in­ be a mixture of simple text and special action codes. terrupt. A likely indicator of a program writing to the The simple text represents the "keystrokes" that will screen is its retrieval of a keyboard entry, which is ini­ be placed in the keyboard buffer. The action code s tiated by the sending of a keyboard request. ALTKEY (depicted by < ac tio n code» provide for special intercepts the keyboard request interrupt in order to functions including nonalphanumeric keyboard ac­ anticipate screen updates that occur when keyboard tions (cursor control, character shifting, Del, Reset, buffer characters are passed to a program. When this etc.), scanning and Morse code functions, and control occurs, ALTKEY removes the scan line for a brief of input and output. moment to allow accurate update of the video dis­ After the action sequence has been executed, play. The second reason for intercepting the key­ scanning begins again from a location on the scan tree board requestinterrupt is to provide a means of com­ determined by the type of item that was selected. munication between AKSCAN and the nonresident The default starting location after an entry is the top program, ALTKEY, as described below. of the tree, but it can be programmed to any location via special action codes. After a group item is select­ Tim er Tick Interrupt ed, scanning continues at the scan level. AKSCAN uses the timer tick interrupt (which The three remaining types of items are initial, hold, "ticks" 18.2 times each second) to change the high­ and file. An initial item provides a method to set lighted scan selection on the video screen based on starting conditions including scanning time param­ the selected scan rate. It also checks the status of eters, Morse code timing parameters, ope ration each input source for a switch activation (the key­ mode, location of scan display, attachment of input board, a game port, or the serial port) once each tick. switch, auditory feedback (tone or click), or spoken selections via voice synthesis (for visually impaired users). USER/CLINICIAN PROGRAMMABILITY: Three timing parameters are used to defin e the ALTKEY SCAN TREES characteristics of the scanning operation mode. First, ALTKEY is a nonresident program thatloads scan the scan rate for regular and inverse scanning can be trees into the memory buffer and activates the scan­ specified. A selection delay time can also be speci­ ner. To load a new scan tree, ALTKEY is executed fied allowing a time delay between switch activation with the scan-tree definition file specified on the and item selection. Finally, a second delay can be DOS command line. Any errors discovered in the programmed between item selection and the re­ syntax of the scan file are reported to the user. If sumption of scanning. This can be very helpful to the there are none, ALTKEY establishes communica­ user in locating the next de sired item. tion with AKSCAN through the keyboard-request Three timing parameters are required to spec ify interrupt and loads the completed scan tree into the the timing characteristics for two-switch Morse code scan-tree storage buffer previously allocated by (6). ALTKEY permits ind ependent specificatio n of AKSCAN. all three: (a) mcwait, the pause time used to signify the end of a character;(b) mcrepeat, the time len gth of repeating dots and dashes (also the hold time re­ Scan-Tree Definition File quired for automatic repeat of dots or dashes); and Much of the power (as well as complexity) of the (c) mcpause, the time length of the pause between re­ ALTKEY system derives from the flexibility in scan­ peating dots and dashe s. For one-switch Morse code tree design afforded by the scan-tree definition file there is no repeat; the two applicable parameters are structure. This file is composed of a list of items. mcwait and mcdot, which defines the length of a dot. There are six distinct types of items: group, entry, ini­ The hold item allows the user to select and ex­ tial, hold, file, and comm ent. ecute an action sequence by holding the selection key

COMP UT E R ACCE SS BY MOTOR-IMPAIRED PEOPLE 67 down for a prescribed minimum time. For example, To guarantee compatibility of display outputs, all the ALTKEY code, hold:5:, allows the user output to the screen should be routed through the toreboot the computer (via the action code) standard system video-interrupt routine. Many pro­ by holding down the selection switch for 5 seconds. grams, including the operating system (either MS­ Another possible use for the hold item is to switch DOS or PC-DOS), actually do use this method of between Morse code and scanning operation modes. screen access. ALTKEY intercepts each of these The file item inserts the text of the named file into calls and updates the screen accordingly. Unfortu­ the text of the main scan definition file at the point nately, a growing number of programs access video where the file item occurs. The effect is the same as a memory directly, completely bypassing the video macro-expansion in language and allows interrupt in order to improve the speed of the output the scan-tree programmer to place subtrees in sepa­ display. As described above, ALTKEY indirectly rate files and then reuse them frequently without monitors for this condition through the keyboard having to include the complete text of the file each request interrupt to facilitate accurate screen up­ time. date. This indirect approach fails on rare occasions with the result that one or two lines of the screen may DISCUSSION become slightly jumbled. Even then, it is a tempor­ ary condition that rarely impinges seriously on func­ A keyboard emulator must be invisible to the ap­ tionality. plication programs it will be used with. On the input The PC AID ensures video compatibility by re­ side, ALTKEY's keyboard-emulation technique is moving its scan line from the screen after each scan highly compatible with other programs because it cycle. However, the user must hit the switch to re­ uses standard BIOS routines to move characters out turn the scan line to the screen, which adds an extra of the keyboard buffer. At the same time, ALTKEY switch hit to each selection and can significantly re­ enhances input capability by expanding the standard duce user efficiency. The Words+ EZKeys and buffer to accept a lengthy text string from a single Morse WSKE systems are compatible with the dis­ scan selection or Morse code sequence. plays of many applications, but they do not remove The precise emulation techniques used by other their displays from the screen to allow accurate screen computer-access aids such as the PC AID, VIM, and update with applications that bypass the video in­ Words+ systems are not published. The PC AID terrupt. The Scanning WSKE does have an option and the Words+ Scanning/Morse WSKE systems, that will remove the scan display from the screen while compatible with a number of programs, have after a selection, which helps reduce video-incom­ demonstrated incompatibilites with programs that patibility problems. bypass the keyboard request interrupt such as Micro­ In addition to transparency, a useful system must 7 softWord. The VIM system establishes its own key­ give access to as large a percentage of the available board buffer and intercepts the keyboard request keyboard keys and key combinations as possible. interrupt to maintain compatibility (7). However, ALTKEY can imitate all these choices through key this method may prove to be incompatible with pro­ codes, action codes for a specific function (e.g., or l. There are definite tradeoffs in designing the for­ The implementation of a tree-structured scan­ mat and size of a display for an alternative input sys­ definition file, which can be reloaded whenever need­ tem. ALTKEY was specifically designed to provide ed, has an important impact on power and efficiency a highly programmable and flexible system that for the user. The scan-tree file provides full customi­ would only use one line of the screen. Other systems zation of the input modes, the scan menu presenta­ use larger display areas to increase inputoptions, but tion, and system output. they reduce the intelligibility of the application pro­ Several ALTKEY timing parameters can be indi­ gram display. The VIM system, for example, uses a vidually adjusted within the scan-tree definition file. display window of seven lines. An alternative ap­ Most other computer-access systems do not provide proach is to use a full-screen display for the alterna­ comparable control. It is common to have "input tive input system and multiplex it with the applica­ rate" parameters automatically translate to more tion program video-display screen (8). than one timing interval, such as both the scan rate and the selection delay; or all three Morse code tim­ "Word, Corp., 16011 NE 36th Way, Redmond, ing parameters. Such implicit definition of timing WA 98073. functions based on fixed relationships between two

68 ASSISTIVE TECHNOLOGY, VOL. 1, NO.3 or more parameters can restrict system optimization ALTKEY's scan-tree definition file provides great for individual users and reduce input rates. flexibility for system output. As mentioned above, The flexibility of the scan-tree constructalso allows the existence of a general-action sequence field in the the scan menus to be tailored to maximize usability scan-tree file allows ALTKEY to perform special and efficiency. For example, a scan tree can be de­ functions, in addition to its keyboard-emulation signed to follow the input modes and choices expect­ function. The general-action sequence overcome s a ed by an application program. This can be very effec­ limitation found in other computer-acce ss systems tive for menu-driven programs in which at each step such as the PC AID and AFC . In these systems , a the user is presented with scan choices specific to selection results in either text output, function ex­ that menu. Another useful aspect of th e scan-tree ecution, or a branch to a new scan line; combinations construct is that new trees may be loaded into the of these outputs are not allowed. Any number of scanner at any time, making it practical to have a functions can be executed with ALTKEY for a given special scan-tree definition file for each application. selection, and these functions can be combined with An application program can be automatically loaded text output and/or a branch to a new scan line. The together with the appropriate scan tree using batch special functions include the capability for generic files . serial or output for speech synthesis, The scan tree can also be used to decrease the generation of environmental control unit control sig­ number of scan steps necessary to accomplish a task, nals, modem dialing, etc. especially one that involves making the same choice One difficulty with all memory-resident software is several times in succession. Moving the screen cur­ compatibility with nonresident application programs sor down 10 lines on the video display using the down that are simultaneously stored in memory. ALTKEY arrow key is a good example of this type of ta sk. One has been su cces sfully te sted with a number of com­ solution is to use a scan selection that would send the mercial programs. It work s properly with most non­ "down arrow" multiple times. But a more elegant resident software, since it use s standard BIOS rou­ solution is possible by starting with the display, tines. Right Left Up Down None The potential for compatibility problems is com­ pounded when more than one memory-resident pro­ and then programming the scan tree so that when a gram is loaded simultaneously; loading order of selection such as Down is made, it rotates to the first memory-re sident programs can be an imp ortant con­ position in the scan line as shown: sideration in maintaining compatibility. ALTKEY Down Up Right Left None. works properly with a variety of memory-resident software including keyboard-enhancement pro grams The user can then repeatedly choose Down very such as Prokey," Onef'inger," and Quickey.l" quickly as many times as desired. Once the user has executed all the Down moves, another direction (e.g., Right) may be selected with the new direction rotated FUTURE WORK to the front of the scan line: One group of pro grams in which ALTKEY cur­ Right Left Up Down None. rently fails is those that use the vide o-di splay screen in graphics mode. The current ver sion of ALTKEY These rotating menus are achieved by using the ap­ supports character-display mode only. Thus, the propriate action code in the scan-tree definition file. scan line is not displayed properly when ALTKEY is Selection of None can be programmed to return the run with graphics programs. As more and more ap­ user to any chosen menu. plication programs are written to support graphics Other scanning computer-access systems do not mode, it will be important to remedy th is shortcom­ provide this degree of flexibility in the design of the ing with graphics support. scanning presentation menus. For example, PC AID ALTKEY is the basis for an efficient system to allows 10 scan lines of 40 characters each, in which all control a PC from one or two switches. The full pow­ items in a scan line are of the same length. This limits er of the system can only be realized with well-de- the number of branches in the scan tree and restricts the contents of each scan line. In addition, scan se­ lections cannot be programmed in the Scanning SProkey, Rosesoft, 4710 University Way NE , Seattle, WSKE system. However, this system does provide WA 9810 5. gOne Finger, Trace Research and Developm ent Center, integrated abbreviation expansion and word-predic­ 1500 Highland Avenue, Madison, WI 537 06. tion capabilities, which can be tailored for an individ­ lOQuickey, Trace Research and Developm ent Center, ual user. 1500 Highland Avenu e, Madi son, WI 53706.

COMPUTERACCESS BY MOTOR-IMPAIRED PEOPLE 69 signed scan-tree definition files that take advantage 2. Jaros LA, Levine SP. ALTKEY: aspecial inputs pro­ of the available features. However, creating these gram for the IBM-PC. In: Proceedings01 the10th An­ files can bearelatively complex and time-consuming nual Conferenceon Rehabilitation Technology. Wash­ task. One solution to this problem is the develop­ ington, DC: RESNA, 1987 :642-4. ment of scan-tree libraries, containing files designed 3. Schwejda P, Vanderheiden G. Adaptive-firmware card for the Apple II. Byte 1982;7:276-314. for general purposes, such as text entry or cursor 4. Nelson PJ, Korba L, Park G, Crabtree D. The MOD movement. It is a much simpler task to customize keyboard. IEEE Micro 1983 ;3:7-17. existing files than to create entirely new ones. In 5. Dolman L, Meeks S. Alternative acce ss methods for using ALTKEY with patients at the University of the IBM family of personal computers and true com­ Michigan, a number of useful scan-tree files have patibles. In: Proceedings of the 10th Annual Confer­ been developed. In the future, we hope to expand ence on Rehabilitation Technology. Washington, DC: this library of scan trees to make the system as effi­ RESNA, 1987:678-9. cient and simple as possible. 6. Levine SP, Gauger JG, Bowers LD, Khan KJ. Com­ pari son of communication rates for Mor se code and Acknowledgment: ALTKEY was developed and mouthstick keyb oard entry. Augment Altern Commun written by Lincoln A. Jaros from the Rehabilitation 1986 ;2:51-5. EngineeringProgram, Department ofPhysical Medi­ 7. Rowley BA, Davis CA. Interfacing the disabl ed to cine and Rehabilitation, University of Michigan. computer software through virtual int erfa ces. In: Proceedings of the International Conference on Re­ habilitation Technology. Washin gton, DC: RESNA, REFERENCES 1988:380-1. 8. Gunderson J , Vanderheiden G. One scre en multi­ 1. Jaros LA, Levine SP . A single switc h keyboard emu­ plexed keyb oard for transparent access to standard lator for the IBM-PC. In: Proceedings of the 8th An­ IBM-PC software. In: Proceedings of the Internation­ nual Conference, IEEE Engineering in Medicine and al Conference on Rehab ilitation Technology. Wash­ Biology. IEEE, 1986:1823-5. ington, DC: RESNA, 1988 :378-9.

70 ASSISTI VE TE CHNOLOGY, VOL. 1, NO. 3