Japanese keyboard driver:
=========================

0D6A: CHSNS:
0D6A: ei                   ;
0D6B: push   hl            ;
0D6C: push   de            ;
0D6D: push   bc            ;
0D6E: call   $0b4e         ;
0D71: jr     nc,$0d82      ;
0D73: ld     a,($fbcd)     ;FNKSWI
0D76: ld     hl,$fbeb      ;
0D79: xor    (hl)          ;
0D7A: ld     hl,$f3de      ;
0D7D: and    (hl)          ;
0D7E: rrca                 ;
0D7F: call   c,$0b3f       ;
0D82: call   $0d62         ;
0D85: pop    bc            ;
0D86: pop    de            ;
0D87: pop    hl            ;
0D88: ret                  ;

0D89: push   hl            ;
0D8A: push   de            ;
0D8B: push   bc            ;
0D8C: push   af            ;
0D8D: ld     a,$0b         ;
0D8F: sub    b             ;
0D90: add    a,a           ;
0D91: add    a,a           ;
0D92: add    a,a           ;
0D93: ld     c,a           ;
0D94: ld     b,$08         ;
0D96: pop    af            ;
0D97: rra                  ;
0D98: push   bc            ;
0D99: push   af            ;
0D9A: call   c,$0e3b       ;
0D9D: pop    af            ;
0D9E: pop    bc            ;
0D9F: inc    c             ;
0DA0: djnz   $0d97         ;
0DA2: jp     $0938         ;

0EF1: ld     a,(hl)
0EF2: and    $01
0EF4: ret    z
0EF5: ld     a,(hl)
0EF6: or     $04
0EF8: cp     (hl)
0EF9: ret    z
0EFA: ld     (hl),a
0EFB: xor    $05
0EFD: ret    nz
0EFE: ld     a,($fbd8)
0F01: inc    a
0F02: ld     ($fbd8),a
0F05: ret

0F06: ld     a,($fbeb)
0F09: rrca
0F0A: ld     a,$0c
0F0C: sbc    a,$00
0F0E: jr     $0f55

0F10: call   $fdd1
0F13: ld     e,a
0F14: ld     d,$00
0F16: ld     hl,$0de3
0F19: add    hl,de
0F1A: ld     a,(hl)
0F1B: and    a
0F1C: ret    z
0F1D: jr     $0f55

0F1F: ld     hl,$fafc
0F22: bit    0,(hl)
0F24: jr     z,$0f2c
0F26: xor    a
0F27: res    0,(hl)
0F29: jp     $111c
0F2C: ld     a,($fcac)
0F2F: inc    a
0F30: jp     z,$0c36
0F33: jp     $0c25

0F36: ld     hl,$fcab
0F39: ld     a,(hl)
0F3A: cpl
0F3B: ld     (hl),a
0F3C: cpl
0F3D: and    a
0F3E: ld     a,$0c
0F40: jr     z,$0f43
0F42: inc    a
0F43: out    ($ab),a
0F45: ret

0F46: ld     a,($fbeb)
0F49: rrca
0F4A: rrca
0F4B: ld     a,$03
0F4D: jr     nc,$0f50
0F4F: inc    a
0F50: ld     ($fc9b),a
0F53: jr     c,$0f64

0F55: pop    hl
0F56: push   hl
0F57: ld     bc,$0ee0
0F5A: or     a
0F5B: sbc    hl,bc
0F5D: ld     ix,$0139
0F61: jp     $029b
0F64: ld     a,($f3db)
0F67: and    a
0F68: ret    z
0F69: ld     a,($fbd9)
0F6C: and    a
0F6D: ret    nz
0F6E: ld     a,$0f
0F70: ld     ($fbd9),a
0F73: out    ($ab),a
0F75: ld     a,$0a
0F77: dec    a
0F78: jr     nz,$0f77

0F7A: and    a
0F7B: ld     a,$0e
0F7D: jr     z,$0f80
0F7F: inc    a
0F80: out    ($ab),a
0F82: ret

0F83: ld     a,($fcad)
0F86: and    a
0F87: ld     a,($fbeb)
0F8A: rrca
0F8B: jr     z,$0f97
0F8D: ld     hl,$101d
0F90: jr     c,$0f9f
0F92: ld     hl,$104d
0F95: jr     $0f9f
0F97: ld     hl,$0fbd
0F9A: jr     c,$0f9f
0F9C: ld     hl,$0fed
0F9F: ld     b,$00
0FA1: add    hl,bc
0FA2: ld     bc,$0f55
0FA5: push   bc
0FA6: ld     a,($fcab)
0FA9: and    a
0FAA: ld     a,(hl)
0FAB: ret    nz
0FAC: cp     $a6
0FAE: ret    c
0FAF: cp     $b0
0FB1: ret    z
0FB2: cp     $de
0FB4: ret    nc
0FB5: sub    $20
0FB7: cp     $a0
0FB9: ret    c
0FBA: add    a,$40
0FBC: ret

10C2: inc    hl
10C3: ld     a,l
10C4: cp     $18
10C6: ret    nz
10C7: ld     hl,$fbf0
10CA: ret

10F9: push   hl
10FA: ld     hl,$0000
10FD: call   $04f0
1100: pop    hl
1101: ret

0EC5: ld     e,c
0EC6: ld     d,$00
0EC8: ld     hl,$fb99
0ECB: add    hl,de
0ECC: ld     a,(hl)
0ECD: and    a
0ECE: jr     nz,$0ee3
0ED0: ex     de,hl
0ED1: add    hl,hl
0ED2: add    hl,hl
0ED3: add    hl,hl
0ED4: add    hl,hl
0ED5: ld     de,$f52f
0ED8: add    hl,de
0ED9: ex     de,hl
0EDA: ld     a,(de)
0EDB: and    a
0EDC: ret    z
0EDD: call   $0f55
0EE0: inc    de
0EE1: jr     $0eda
0EE3: ld     hl,($f41c)
0EE6: inc    hl
0EE7: ld     a,h
0EE8: or     l
0EE9: jr     z,$0ed0
0EEB: ld     hl,$fbad
0EEE: add    hl,de
0EEF: add    hl,de
0EF0: add    hl,de
