Skip to content

Apple M0110 Keyboard Protocol

hasu@tmk edited this page Jan 28, 2024 · 20 revisions

Technical resources

Discussion thread

Source code

Technical Info for 128K/512K and Plus

Protocol:

Connector:

  • Page 20 of Tech Info for 128K/512K

Signaling:

Raw Codes

M0110

m0110_rawcodes

M0110A

,---------------------------------------------------------. ,---------------.
|  `|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =|Bcksp| |Clr|  =|  /|  *|
|---------------------------------------------------------| |---------------|
|Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|   | |  7|  8|  9|  -|
|-----------------------------------------------------'   | |---------------|
|CapsLo|  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|Return| |  4|  5|  6|  +|
|---------------------------------------------------------| |---------------|
|Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  ,|  /|Shft|Up | |  1|  2|  3|   |
|---------------------------------------------------------' |-----------|Ent|
|Optio|Mac    |           Space           |  \|Lft|Rgt|Dn | |      0|  .|   |
`---------------------------------------------------------' `---------------'
,---------------------------------------------------------. ,---------------.
| 65| 25| 27| 29| 2B| 2F| 2D| 35| 39| 33| 3B| 37| 31|   67| |+0F|*11|*1B|*05|
|---------------------------------------------------------| |---------------|
|   61| 19| 1B| 1D| 1F| 23| 21| 41| 45| 3F| 47| 43| 3D|   | |+33|+37|+39|+1D|
|-----------------------------------------------------'   | |---------------|
|    73| 01| 03| 05| 07| 0B| 09| 4D| 51| 4B| 53| 4F|    49| |+2D|+2F|+31|*0D|
|---------------------------------------------------------| |---------------|
|      71| 0D| 0F| 11| 13| 17| 5B| 5D| 27| 5F| 59|  71|+1B| |+27|+29|+2B|   |
|---------------------------------------------------------' |-----------|+19|
|   75|     6F|            63             | 55|+0D|+05|+11| |    +25|+03|   |
`---------------------------------------------------------' `---------------'
+ 0x79, 0xDD / 0xF1, 0xUU
* 0x71, 0x79,DD / 0xF1, 0x79, 0xUU

Scan Codes

TMK converer uses following scan codes instead of M0110 raw codes. Scan codes are 1 byte size and MSB(bit7) is set when key is released.

    scancode = ((raw&0x80) | ((raw&0x7F)>>1))

Pinouts

Mac 128k/512k/Plus Keyboard pinout
.---------, 
| 1 2 3 4 | 1 GND
|         | 2 Clock
|         | 3 Data
`---___---' 4 5V
from front of connector

Clone this wiki locally