Merge branch 'ibm4704'
commit
a03a197fe2
|
@ -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…
Reference in New Issue