]> git.friedersdorff.com Git - max/tmk_keyboard.git/blobdiff - converter/ibm4704_usb/ibm4704.txt
ibm4704_usb: Fix handling of keyboard ID byte #420
[max/tmk_keyboard.git] / converter / ibm4704_usb / ibm4704.txt
index 4dc296b2c5867630aaa09635edb357e9223de18f..73c8a3b9ff2bf3a1fc014237e91ff97675ab1555 100644 (file)
@@ -1,10 +1,10 @@
 IBM 4704 Keyboard
 =================
 IBM capacitive switch models:
-    6019273 Model 100 50-key (grid layout)      http://kishy.dyndns.org/?p=977
-    6019284 Model 200 62-key Alpha(60% layout)  http://kishy.dyndns.org/?p=894
-    6019303 Model 300 77-key Expanded Alpha     http://kbtalking.cool3c.com/article/23272
-    6020218 Model 400 107-key Full key          http://kishy.dyndns.org/?p=980
+    6019273 Model 100 50-key (grid layout)      http://kishy.ca/?p=894
+    6019284 Model 200 62-key Alpha(60% layout)  http://kishy.ca/?p=894
+    6019303 Model 300 77-key Expanded Alpha     http://deskthority.net/photos-f62/ibm-6019303-t8502.html
+    6020218 Model 400 107-key Full key          http://kishy.ca/?p=894
 
 Alps switch(vintage Green) models:
     5954339 Japanese 102-key    http://deskthority.net/post87127.html#p87127
@@ -57,15 +57,15 @@ Keyboard to Host
 ----------------
 Data bits are LSB first and Pairty is odd. Clock has around 60us high and 30us low part.
 
-            ____      __   __   __   __   __   __   __   __   __   ________
-    Clock       \____/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/
+            ____       __   __   __   __   __   __   __   __   __   _______
+    Clock       \_____/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/  \_/
                  ____ ____ ____ ____ ____ ____ ____ ____ ____ ____    
     Data    ____/    X____X____X____X____X____X____X____X____X____X________
                 Start   0    1    2    3    4    5    6    7    P  Stop
 
 Start bit:  can be long as 300-350us.
 Inhibit:    Pull Data line down to inhibit keyboard to send.
-Timing:     Host reads bit while Clock is hi.
+Timing:     Host reads bit while Clock is hi.(rising edge)
 Stop bit:   Keyboard pulls down Data line to lo after 9th clock.
 
 
@@ -152,12 +152,16 @@ Keyobard sends these bytes to host.
     FD  Command out of bound                    00d8h
         Key out of bound
     7E  Read/Parity error in receive from host  00bch
+    80-FB? scan code(make)
+    00-7B? scan code(break)
+    note: Alps model spits scan code 7B(FB) at least.
 
 
 Set Key Flag command(FC)
 ------------------------
 After 'Power on Reset' firmware enters this command mode and waits for data from host,
 so that you don't need to send 'FC' and it doesn't send any scancode until you send 'FF'.
+With Alps models you need to send 'FC' command to enter this mode.
 
 Data sent from host:
 
@@ -166,16 +170,17 @@ Data sent from host:
          |   `-----`--- scan code
          `------------- enable bit(0: enable repeat, 1: enable break)
 
-    00-77   Enable repeat(78-7F: invalid scancode)
-    80-F7   Enable break(F8-FF: invalid scancode)
+    00-7B?  Enable repeat
+    80-FB?  Enable break
     FE      Resend(011ah) no need to use
     FF      End(0114h) exits FC command mode.
 
 Response from keyboard:
     FD      Out of bound - Invalid scancode
+    --      OK - No response means that command is accepted.
 
 Examples:
     To enable break code of all keys.
 
-    FC 80 81 ... F7 FF
+    FC 80 81 ... FB FF