forked from mirrors/qmk_userspace
		
	Merge branch 'ibm4704'
This commit is contained in:
		
				commit
				
					
						a03a197fe2
					
				
			
		
					 3 changed files with 64 additions and 27 deletions
				
			
		| 
						 | 
					@ -5,8 +5,23 @@ This firmware converts IBM 4704 keyboard protocol to USB HID.
 | 
				
			||||||
Keyboard initialization process takes a few seconds at start up. During that you will hear buzzer from the keyboard. **You need to plug USB cable after hooking up your keyboard to the converter.**
 | 
					Keyboard initialization process takes a few seconds at start up. During that you will hear buzzer from the keyboard. **You need to plug USB cable after hooking up your keyboard to the converter.**
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
4704 Connector
 | 
					Keyboard models
 | 
				
			||||||
--------------
 | 
					---------------
 | 
				
			||||||
 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Alps switch(vintage Green) models:
 | 
				
			||||||
 | 
					    5954339 Japanese 102-key    http://deskthority.net/post87127.html#p87127
 | 
				
			||||||
 | 
					    6112883 Japanese 102-key    http://geekhack.org/index.php?topic=52888.msg1194489#msg1194489
 | 
				
			||||||
 | 
					    6112884 Japanese 102-key    http://geekhack.org/index.php?topic=50437.msg1193047#msg1193047
 | 
				
			||||||
 | 
					    6341739 Chinese 102-key     http://geekhack.org/index.php?topic=52888.msg1176566#msg1176566
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Connector
 | 
				
			||||||
 | 
					---------
 | 
				
			||||||
Keyboard Plug from front:
 | 
					Keyboard Plug from front:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DSUB-9
 | 
					    DSUB-9
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -35,6 +35,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* key combination for command */
 | 
					/* key combination for command */
 | 
				
			||||||
#define IS_COMMAND() ( \
 | 
					#define IS_COMMAND() ( \
 | 
				
			||||||
 | 
					    keyboard_report->mods == (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RCTRL)) || \
 | 
				
			||||||
    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 | 
					    keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,16 @@
 | 
				
			||||||
4704 Keyboard
 | 
					IBM 4704 Keyboard
 | 
				
			||||||
=============
 | 
					=================
 | 
				
			||||||
Keyboard Models:
 | 
					IBM capacitive switch models:
 | 
				
			||||||
    Model 100 6019273 50-key (grid layout)
 | 
					    6019273 Model 100 50-key (grid layout)      http://kishy.dyndns.org/?p=977
 | 
				
			||||||
    Model 200 6019284 62-key Alpha(60% layout)
 | 
					    6019284 Model 200 62-key Alpha(60% layout)  http://kishy.dyndns.org/?p=894
 | 
				
			||||||
    Model 300 6019303 77-key Expanded Alpha
 | 
					    6019303 Model 300 77-key Expanded Alpha     http://kbtalking.cool3c.com/article/23272
 | 
				
			||||||
    Model 400 6020218 107-key Full key
 | 
					    6020218 Model 400 107-key Full key          http://kishy.dyndns.org/?p=980
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Alps switch(vintage Green) models:
 | 
				
			||||||
 | 
					    5954339 Japanese 102-key    http://deskthority.net/post87127.html#p87127
 | 
				
			||||||
 | 
					    6112883 Japanese 102-key    http://geekhack.org/index.php?topic=52888.msg1194489#msg1194489
 | 
				
			||||||
 | 
					    6112884 Japanese 102-key    http://geekhack.org/index.php?topic=50437.msg1193047#msg1193047
 | 
				
			||||||
 | 
					    6341739 Chinese 102-key     http://geekhack.org/index.php?topic=52888.msg1176566#msg1176566
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Resourse
 | 
					Resourse
 | 
				
			||||||
--------
 | 
					--------
 | 
				
			||||||
| 
						 | 
					@ -16,11 +22,19 @@ http://ed-thelen.org/comp-hist/IBM-ProdAnn/4700.pdf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
4704 Keyboard Protocol
 | 
					IBM 4704 Keyboard Protocol
 | 
				
			||||||
======================
 | 
					==========================
 | 
				
			||||||
On powering up the keyboard sends keyboard id; A3h for 6019284(62-key), for example.
 | 
					On powering up keyboard sends keyboard ID; A3h for 6019284(62-key), for example.
 | 
				
			||||||
After that firmware enters FC command mode and waits for parameter data from host
 | 
					After that the keyboard enters FC command mode and waits for parameter data from host
 | 
				
			||||||
so that it doesn't send any scancode until you send 'FF'(End of FC command).
 | 
					so that it doesn't send any scancode until you send 'FF'(End of FC command mode).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Keyboard                    ID
 | 
				
			||||||
 | 
					    -------------------------------
 | 
				
			||||||
 | 
					    Model 100 50-key            A2h
 | 
				
			||||||
 | 
					    Model 200 62-key            A3h
 | 
				
			||||||
 | 
					    Model 300 77-key            A4h
 | 
				
			||||||
 | 
					    Model 400 107-key           ??
 | 
				
			||||||
 | 
					    Japanese/Chinese 102-key    A6h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Connector
 | 
					Connector
 | 
				
			||||||
| 
						 | 
					@ -113,27 +127,34 @@ NOTE: When break code is enabled the key sends scancode with setting 7th bit on
 | 
				
			||||||
and without it on release. That is, '`' sends 80h on press and 00h on release.
 | 
					and without it on release. That is, '`' sends 80h on press and 00h on release.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
keyboard command
 | 
					Keyboard command
 | 
				
			||||||
----------------
 | 
					----------------
 | 
				
			||||||
    FF  Soft Reset(0008h)
 | 
					Keyboard accepts these commands from host.
 | 
				
			||||||
    FE  Resend(00e8h)
 | 
					
 | 
				
			||||||
    FD  Buzzer stop?(00edh)
 | 
					        Description                             Entry point
 | 
				
			||||||
    FC  Set Key flag(00f6h)
 | 
					    -----------------------------------------------------------
 | 
				
			||||||
    FB  Soft Reset(0008h)
 | 
					    FF  Soft Reset                              0008h
 | 
				
			||||||
    FA  Reset(0000h)
 | 
					    FE  Resend                                  00e8h
 | 
				
			||||||
 | 
					    FD  Buzzer(emits a short beep)              00edh
 | 
				
			||||||
 | 
					    FC  Set Key Flag                            00f6h
 | 
				
			||||||
 | 
					    FB  Soft Reset                              0008h
 | 
				
			||||||
 | 
					    FA  Reset                                   0000h
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Keyboard response
 | 
					Keyboard response
 | 
				
			||||||
-----------------
 | 
					-----------------
 | 
				
			||||||
    FF  Not exist. [Outgoing buffer cannot have FFh(00h in fact)]
 | 
					Keyobard sends these bytes to host.
 | 
				
			||||||
    FE  Overflow(key event/receive data)        at 00c5h, 0346h
 | 
					
 | 
				
			||||||
    FE  Memory test error                       at 0224h
 | 
					        Description                             Entry point
 | 
				
			||||||
    FD  Command out of bound                    at 00d8h
 | 
					    -----------------------------------------------------------
 | 
				
			||||||
 | 
					    FE  Overflow(key event/receive data)        00c5h, 0346h
 | 
				
			||||||
 | 
					        Memory test error                       0224h
 | 
				
			||||||
 | 
					    FD  Command out of bound                    00d8h
 | 
				
			||||||
        Key out of bound
 | 
					        Key out of bound
 | 
				
			||||||
    7E  Read/Parity error in receive from host  at 00bch
 | 
					    7E  Read/Parity error in receive from host  00bch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Set Key flag command(FC)
 | 
					Set Key Flag command(FC)
 | 
				
			||||||
------------------------
 | 
					------------------------
 | 
				
			||||||
After 'Power on Reset' firmware enters this command mode and waits for data from host,
 | 
					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'.
 | 
					so that you don't need to send 'FC' and it doesn't send any scancode until you send 'FF'.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue