📄 atarikbd.txt
字号:
N.B. If the mouse buttons have been commanded to act like keyboard keys, thiscommand DOES affect their actions.9.14 PAUSE OUTPUT 0x13Stop sending data to the host until another valid command is received. Keymatrix activity is still monitored and scan codes or ASCII characters enqueued(up to the maximum supported by the microcontroller) to be sent when the hostallows the output to be resumed. If in the JOYSTICK EVENT REPORTING mode,joystick events are also queued.Mouse motion should be accumulated while the output is paused. If the ikbd isin RELATIVE MOUSE POSITIONING REPORTING mode, motion is accumulated beyond thenormal threshold limits to produce the minimum number of packets necessary fortransmission when output is resumed. Pressing or releasing either mouse buttoncauses any accumulated motion to be immediately queued as packets, if themouse is in RELATIVE MOUSE POSITION REPORTING mode.Because of the limitations of the microcontroller memory this command shouldbe used sparingly, and the output should not be shut of for more than <tbd>milliseconds at a time.The output is stopped only at the end of the current 'even'. If the PAUSEOUTPUT command is received in the middle of a multiple byte report, the packetwill still be transmitted to conclusion and then the PAUSE will take effect.When the ikbd is in either the JOYSTICK MONITORING mode or the FIRE BUTTONMONITORING mode, the PAUSE OUTPUT command also temporarily stops themonitoring process (i.e. the samples are not enqueued for transmission).0.15 SET JOYSTICK EVENT REPORTING 0x14Enter JOYSTICK EVENT REPORTING mode (DEFAULT). Each opening or closure of ajoystick switch or trigger causes a joystick event record to be generated.9.16 SET JOYSTICK INTERROGATION MODE 0x15Disables JOYSTICK EVENT REPORTING. Host must send individual JOYSTICKINTERROGATE commands to sense joystick state.9.17 JOYSTICK INTERROGATE 0x16Return a record indicating the current state of the joysticks. This commandis valid in either the JOYSTICK EVENT REPORTING mode or the JOYSTICKINTERROGATION MODE.9.18 SET JOYSTICK MONITORING 0x17 rate ; time between samples in hundredths of a second Returns: (in packets of two as long as in mode) %000000xy ; where y is JOYSTICK1 Fire button ; and x is JOYSTICK0 Fire button %nnnnmmmm ; where m is JOYSTICK1 state ; and n is JOYSTICK0 stateSets the ikbd to do nothing but monitor the serial command line, maintain thetime-of-day clock, and monitor the joystick. The rate sets the intervalbetween joystick samples.N.B. The user should not set the rate higher than the serial communicationschannel will allow the 2 bytes packets to be transmitted.9.19 SET FIRE BUTTON MONITORING 0x18 Returns: (as long as in mode) %bbbbbbbb ; state of the JOYSTICK1 fire button packed ; 8 bits per byte, the first sample if the MSBSet the ikbd to do nothing but monitor the serial command line, maintain thetime-of-day clock, and monitor the fire button on Joystick 1. The fire buttonis scanned at a rate that causes 8 samples to be made in the time it takes forthe previous byte to be sent to the host (i.e. scan rate = 8/10 * baud rate).The sample interval should be as constant as possible.9.20 SET JOYSTICK KEYCODE MODE 0x19 RX ; length of time (in tenths of seconds) until ; horizontal velocity breakpoint is reached RY ; length of time (in tenths of seconds) until ; vertical velocity breakpoint is reached TX ; length (in tenths of seconds) of joystick closure ; until horizontal cursor key is generated before RX ; has elapsed TY ; length (in tenths of seconds) of joystick closure ; until vertical cursor key is generated before RY ; has elapsed VX ; length (in tenths of seconds) of joystick closure ; until horizontal cursor keystrokes are generated ; after RX has elapsed VY ; length (in tenths of seconds) of joystick closure ; until vertical cursor keystrokes are generated ; after RY has elapsedIn this mode, joystick 0 is scanned in a way that simulates cursor keystrokes.On initial closure, a keystroke pair (make/break) is generated. Then up to Rntenths of seconds later, keystroke pairs are generated every Tn tenths ofseconds. After the Rn breakpoint is reached, keystroke pairs are generatedevery Vn tenths of seconds. This provides a velocity (auto-repeat) breakpointfeature.Note that by setting RX and/or Ry to zero, the velocity feature can bedisabled. The values of TX and TY then become meaningless, and the generationof cursor 'keystrokes' is set by VX and VY.9.21 DISABLE JOYSTICKS 0x1ADisable the generation of any joystick events (and scanning may be internallydisabled). Any valid joystick mode command resumes joystick monitoring. (Thejoystick mode commands are SET JOYSTICK EVENT REPORTING, SET JOYSTICKINTERROGATION MODE, SET JOYSTICK MONITORING, SET FIRE BUTTON MONITORING, andSET JOYSTICK KEYCODE MODE.)9.22 TIME-OF-DAY CLOCK SET 0x1B YY ; year (2 least significant digits) MM ; month DD ; day hh ; hour mm ; minute ss ; secondAll time-of-day data should be sent to the ikbd in packed BCD format.Any digit that is not a valid BCD digit should be treated as a 'don't care'and not alter that particular field of the date or time. This permits settingonly some subfields of the time-of-day clock.9.23 INTERROGATE TIME-OF-DAT CLOCK 0x1C Returns: 0xFC ; time-of-day event header YY ; year (2 least significant digits) MM ; month DD ; day hh ; hour mm ; minute ss ; second All time-of-day is sent in packed BCD format.9.24 MEMORY LOAD 0x20 ADRMSB ; address in controller ADRLSB ; memory to be loaded NUM ; number of bytes (0-128) { data }This command permits the host to load arbitrary values into the ikbdcontroller memory. The time between data bytes must be less than 20ms.9.25 MEMORY READ 0x21 ADRMSB ; address in controller ADRLSB ; memory to be read Returns: 0xF6 ; status header 0x20 ; memory access { data } ; 6 data bytes starting at ADRThis command permits the host to read from the ikbd controller memory.9.26 CONTROLLER EXECUTE 0x22 ADRMSB ; address of subroutine in ADRLSB ; controller memory to be calledThis command allows the host to command the execution of a subroutine in theikbd controller memory.9.27 STATUS INQUIRIES Status commands are formed by inclusively ORing 0x80 with the relevant SET command. Example: 0x88 (or 0x89 or 0x8A) ; request mouse mode Returns: 0xF6 ; status response header mode ; 0x08 is RELATIVE ; 0x09 is ABSOLUTE ; 0x0A is KEYCODE param1 ; 0 is RELATIVE ; XMSB maximum if ABSOLUTE ; DELTA X is KEYCODE param2 ; 0 is RELATIVE ; YMSB maximum if ABSOLUTE ; DELTA Y is KEYCODE param3 ; 0 if RELATIVE ; or KEYCODE ; YMSB is ABSOLUTE param4 ; 0 if RELATIVE ; or KEYCODE ; YLSB is ABSOLUTE 0 ; pad 0The STATUS INQUIRY commands request the ikbd to return either the current modeor the parameters associated with a given command. All status reports arepadded to form 8 byte long return packets. The responses to the statusrequests are designed so that the host may store them away (after strippingoff the status report header byte) and later send them back as commands toikbd to restore its state. The 0 pad bytes will be treated as NOPs by theikbd. Valid STATUS INQUIRY commands are: 0x87 mouse button action 0x88 mouse mode 0x89 0x8A 0x8B mnouse threshold 0x8C mouse scale 0x8F mouse vertical coordinates 0x90 ( returns 0x0F Y=0 at bottom 0x10 Y=0 at top ) 0x92 mouse enable/disable ( returns 0x00 enabled) 0x12 disabled ) 0x94 joystick mode 0x95 0x96 0x9A joystick enable/disable ( returns 0x00 enabled 0x1A disabled )It is the (host) programmer's responsibility to have only one unansweredinquiry in process at a time.STATUS INQUIRY commands are not valid if the ikbd is in JOYSTICK MONITORINGmode or FIRE BUTTON MONITORING mode.10. SCAN CODESThe key scan codes returned by the ikbd are chosen to simplify theimplementation of GSX.GSX Standard Keyboard Mapping.Hex Keytop01 Esc02 103 204 305 406 507 608 709 80A 90B 00C -0D ==0E BS0F TAB10 Q11 W12 E13 R14 T15 Y16 U17 I18 O19 P1A [1B ]1C RET1D CTRL1E A1F S20 D21 F22 G23 H24 J25 K26 L27 ;28 '29 `2A (LEFT) SHIFT2B \2C Z2D X2E C2F V30 B31 N32 M33 ,34 .35 /36 (RIGHT) SHIFT37 { NOT USED }38 ALT39 SPACE BAR3A CAPS LOCK3B F13C F23D F33E F43F F540 F641 F742 F843 F944 F1045 { NOT USED }46 { NOT USED }47 HOME48 UP ARROW49 { NOT USED }4A KEYPAD -4B LEFT ARROW4C { NOT USED }4D RIGHT ARROW4E KEYPAD +4F { NOT USED }50 DOWN ARROW51 { NOT USED }52 INSERT53 DEL54 { NOT USED }5F { NOT USED }60 ISO KEY61 UNDO62 HELP63 KEYPAD (64 KEYPAD /65 KEYPAD *66 KEYPAD *67 KEYPAD 768 KEYPAD 869 KEYPAD 96A KEYPAD 46B KEYPAD 56C KEYPAD 66D KEYPAD 16E KEYPAD 26F KEYPAD 370 KEYPAD 071 KEYPAD .72 KEYPAD ENTER
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -