Lines Matching refs:the
15 The ikbd communicates with the main processor over a high speed bi-directional
17 different applications of the keyboard, joysticks, or mouse. Limited use of
18 the controller is possible in applications in which only a unidirectional
19 communications medium is available by carefully designing the default modes.
25 closure) codes start at 1, and are defined in Appendix A. For example, the
26 ISO key position in the scan code table should exist even if no keyswitch
28 is obtained by ORing 0x80 with the make code.
41 and the RETurn key are also distinct.
51 within the ikbd, or by converting mouse motion into keyboard cursor control
53 The mouse buttons can be treated as part of the mouse or as additional
58 In relative position mode, the ikbd will return relative mouse position
61 settable threshold of motion. Regardless of the threshold, all bits of
62 resolution are returned to the host computer.
63 Note that the ikbd may return mouse relative position reports with
64 significantly more than the threshold delta x or y. This may happen since no
65 relative mouse motion events will be generated: (a) while the keyboard has
66 been 'paused' ( the event will be stored until keyboard communications is
69 The relative mouse position record is a three byte record of the form
72 ; where y is the right button state
73 ; and x is the left button state
77 Note that the value of the button state bits should be valid even if the
78 MOUSE BUTTON ACTION has set the buttons to act like part of the keyboard.
79 If the accumulated motion before the report packet is generated exceeds the
80 +127...-128 range, the motion is broken into multiple packets.
81 Note that the sign of the delta y reported is a function of the Y origin
87 resetting the mouse position, setting X/Y scaling, and interrogating the
92 The ikbd can translate mouse motion into the equivalent cursor keystrokes.
94 each axis. The ikbd internally maintains mouse motion information to the
96 for each multiple of the scale factor.
97 Mouse motion produces the cursor key make code immediately followed by the
98 break code for the appropriate cursor key. The mouse buttons produce scan
99 codes above those normally assigned for the largest envisioned keyboard (i.e.
106 In this mode, the ikbd generates a record whenever the joystick position is
109 The joystick event record is two bytes of the form:
112 %x000yyyy ; where yyyy is the stick position
113 ; and x is the trigger
117 The current state of the joystick ports may be interrogated at any time in
118 this mode by sending an 'Interrogate Joystick' command to the ikbd.
120 The ikbd response to joystick interrogation is a three byte report of the form
124 ; where x is the trigger
125 ; and yyy is the stick position
129 A mode is available that devotes nearly all of the keyboard communications
130 time to reporting the state of the joystick ports at a user specifiable rate.
132 command in this mode not only stop the output but also temporarily stops
133 scanning the joysticks (samples are not queued).
138 this mode the ikbd monitors the state of the Joystick 1 fire button at the
139 maximum rate permitted by the serial communication channel. The data is packed
140 8 bits per byte for transmission to the host. The ikbd remains in this mode
142 only stops the output but also temporarily stops scanning the button (samples
147 The ikbd may be commanded to translate the use of either joystick into the
150 Joystick events produce the make code, immediately followed by the break code
151 for the appropriate cursor motion keys. The trigger or fire buttons of the
152 joysticks produce pseudo key scan codes above those used by the largest key
157 The ikbd also maintains a time-of-day clock for the system. Commands are
158 available to set and interrogate the timer-of-day clock. Time-keeping is
164 inquiry commands that correspond to the ikbd set commands.
171 (sic) code is returned (which without the preceding MAKE code is a flag for a
172 keyboard error). If the controller self-test completes without error, the code
173 0xF0 is returned. (This code will be used to indicate the version/release of
174 the ikbd controller. The first release of the ikbd is version 0xF0, should
177 either axis and the Y=0 origin at the top of the screen, and joystick event
179 the mouse. After any joystick command, the ikbd assumes that joysticks are
183 received while port 0 is presumed to be a mouse, the button is logically
184 assigned to Joystick1 (until the mouse is reenabled by another mouse command).
188 This section contains a list of commands that can be sent to the ikbd. Command
197 N.B. The RESET command is the only two byte command understood by the ikbd.
199 the 0x80 to be ignored).
200 A reset may also be caused by sending a break lasting at least 200mS to the
202 Executing the RESET command returns the keyboard to its default (power-up)
203 mode and parameter settings. It does not affect the time-of-day clock.
204 The RESET command or function causes the ikbd to perform a simple self-test.
205 If the test is successful, the ikbd will send the code of 0xF0 within 300mS
206 of receipt of the RESET command (or the end of the break, or power-up). The
207 ikbd will then scan the key matrix for any stuck (closed) keys. Any keys found
208 closed will cause the break scan code to be generated (the break code arriving
209 without being preceded by the make code is a flag for a key matrix error).
222 This command sets how the ikbd should treat the buttons on the mouse. The
223 default mouse button action mode is %00000000, the buttons are treated as part
224 of the mouse logically.
232 generated asynchronously by the ikbd whenever motion exceeds the setable
233 threshold in either axis (see SET MOUSE THRESHOLD). Depending upon the mouse
235 button is pressed or released. Otherwise the mouse buttons behave as if they
246 Set absolute mouse position maintenance. Resets the ikbd maintained X and Y
248 In this mode, the value of the internally maintained coordinates does NOT wrap
250 command sets the maximum positive value that can be attained in the scaled
260 either RELATIVE or ABSOLUTE motion records. The ikbd returns the appropriate
261 cursor keycode after mouse travel exceeding the user specified deltas in
262 either axis. When the keyboard is in key scan code mode, mouse motion will
263 cause the make code immediately followed by the break code. Note that this
264 command is not affected by the mouse motion origin.
272 This command sets the threshold before a mouse event is generated. Note that
273 it does NOT affect the resolution of the data returned to the host. This
283 This command sets the scale factor for the ABSOLUTE MOUSE POSITIONING mode.
284 In this mode, the specified number of mouse phase changes ('clicks') must
285 occur before the internally maintained coordinate is changed by one
286 (independently scaled for each axis). Remember that the mouse position
287 information is available only by interrogating the ikbd in the ABSOLUTE MOUSE
288 POSITIONING mode unless the ikbd has been commanded to report on button press
306 The INTERROGATE MOUSE POSITION command is valid when in the ABSOLUTE MOUSE
307 POSITIONING mode, regardless of the setting of the MOUSE BUTTON ACTION.
318 This command allows the user to preset the internally maintained absolute
325 This command makes the origin of the Y axis to be at the bottom of the
326 logical coordinate system internal to the ikbd for all relative or absolute
327 mouse motion. This causes mouse motion toward the user to be negative in sign
328 and away from the user to be positive.
334 Makes the origin of the Y axis to be at the top of the logical coordinate
335 system within the ikbd for all relative or absolute mouse motion. (DEFAULT)
336 This causes mouse motion toward the user to be positive in sign and away from
337 the user to be negative.
343 Resume sending data to the host. Since any command received by the ikbd after
345 thought of as a NO OPERATION command. If this command is received by the ikbd
356 N.B. If the mouse buttons have been commanded to act like keyboard keys, this
363 Stop sending data to the host until another valid command is received. Key
365 (up to the maximum supported by the microcontroller) to be sent when the host
366 allows the output to be resumed. If in the JOYSTICK EVENT REPORTING mode,
368 Mouse motion should be accumulated while the output is paused. If the ikbd is
369 in RELATIVE MOUSE POSITIONING REPORTING mode, motion is accumulated beyond the
370 normal threshold limits to produce the minimum number of packets necessary for
372 causes any accumulated motion to be immediately queued as packets, if the
374 Because of the limitations of the microcontroller memory this command should
375 be used sparingly, and the output should not be shut of for more than <tbd>
377 The output is stopped only at the end of the current 'even'. If the PAUSE
378 OUTPUT command is received in the middle of a multiple byte report, the packet
379 will still be transmitted to conclusion and then the PAUSE will take effect.
380 When the ikbd is in either the JOYSTICK MONITORING mode or the FIRE BUTTON
381 MONITORING mode, the PAUSE OUTPUT command also temporarily stops the
382 monitoring process (i.e. the samples are not enqueued for transmission).
402 Return a record indicating the current state of the joysticks. This command
403 is valid in either the JOYSTICK EVENT REPORTING mode or the JOYSTICK
416 Sets the ikbd to do nothing but monitor the serial command line, maintain the
417 time-of-day clock, and monitor the joystick. The rate sets the interval
419 N.B. The user should not set the rate higher than the serial communications
420 channel will allow the 2 bytes packets to be transmitted.
426 %bbbbbbbb ; state of the JOYSTICK1 fire button packed
427 ; 8 bits per byte, the first sample if the MSB
429 Set the ikbd to do nothing but monitor the serial command line, maintain the
430 time-of-day clock, and monitor the fire button on Joystick 1. The fire button
431 is scanned at a rate that causes 8 samples to be made in the time it takes for
432 the previous byte to be sent to the host (i.e. scan rate = 8/10 * baud rate).
458 seconds. After the Rn breakpoint is reached, keystroke pairs are generated
461 Note that by setting RX and/or Ry to zero, the velocity feature can be
462 disabled. The values of TX and TY then become meaningless, and the generation
469 Disable the generation of any joystick events (and scanning may be internally
485 All time-of-day data should be sent to the ikbd in packed BCD format.
487 and not alter that particular field of the date or time. This permits setting
488 only some subfields of the time-of-day clock.
512 This command permits the host to load arbitrary values into the ikbd
525 This command permits the host to read from the ikbd controller memory.
533 This command allows the host to command the execution of a subroutine in the
538 Status commands are formed by inclusively ORing 0x80 with the
563 The STATUS INQUIRY commands request the ikbd to return either the current mode
564 or the parameters associated with a given command. All status reports are
565 padded to form 8 byte long return packets. The responses to the status
566 requests are designed so that the host may store them away (after stripping
567 off the status report header byte) and later send them back as commands to
568 ikbd to restore its state. The 0 pad bytes will be treated as NOPs by the
592 It is the (host) programmer's responsibility to have only one unanswered
594 STATUS INQUIRY commands are not valid if the ikbd is in JOYSTICK MONITORING
600 The key scan codes returned by the ikbd are chosen to simplify the