Changes

Jump to: navigation, search

Programming:Keyboard scanning

3,090 bytes added, 17 April
/* Hardware scancodes */
== Hardware scancode scancodes ==Joy1 fire3 and Joy2 fire3 only work on Amstrad CPC, not on Amstrad Plus. === English table ==={|{{Prettytable|width: 700px; font-size: 2em;}}|'''Bit:<br>Line''' || '''7''' || '''6''' || '''5''' || '''4''' || '''3''' || '''2''' || '''1''' || '''0'''|-|'''&40''' || F Dot || ENTER || F3 || F6 || F9 || CURDOWN || CURRIGHT || CURUP|-|'''&41''' || F0 || F2 || F1 || F5 || F8 || F7 || COPY || CURLEFT|-|'''&42''' || CONTROL || \ ` || SHIFT || F4 || ] } || RETURN || [ { || CLR|-|'''&43''' || . > || / ? || : * || ; + || P || @ ¦ || - = || ^ £|-|'''&44''' || , < || M || K || L || I || O || 9 ) || 0 _|-|'''&45''' || SPACE || N || J || H || Y || U || 7 ' || 8 (|-|'''&46''' || V || B (Joy2 fire3) || F (Joy2 fire2) || G (Joy2 fire1) || T (Joy2 right) || R (Joy2 left) || 5 % (Joy2 down)|| 6 & (Joy2 up)|-|'''&47''' || X || C || D || S || W || E || 3 # || 4 $|-|'''&48''' || Z || CAPSLOCK || A || TAB || Q || ESC || 2 " || 1 !|-|'''&49''' || DEL || Joy1 fire3 || Joy1 fire2 ||Joy1 fire1||Joy1 right||Joy1 left||Joy1 down||Joy1 up|} === Danish table ==={|{{Prettytable|width: 700px; font-size: 2em;}}|'''Bit:<br>Line''' || '''7''' || '''6''' || '''5''' || '''4''' || '''3''' || '''2''' || '''1''' || '''0'''|-|'''&40''' || F Dot || ENTER || F3 || F6 || F9 || CURDOWN || CURRIGHT || CURUP|-|'''&41''' || F0 || F2 || F1 || F5 || F8 || F7 || COPY || CURLEFT|-|'''&42''' || CONTROL || ; + || SHIFT || F4 || : * || RETURN || @ \ || CLR|-|'''&43''' || . > || / ? || Æ || Ø || P || Å || - = || ^ £|-|'''&44''' || , < || M || K || L || I || O || 9 ) || 0 _|-|'''&45''' || SPACE || N || J || H || Y || U || 7 ' || 8 (|-|'''&46''' || V || B (Joy2 fire3) || F (Joy2 fire2) || G (Joy2 fire1) || T (Joy2 right) || R (Joy2 left) || 5 % (Joy2 down)|| 6 & (Joy2 up)|-|'''&47''' || X || C || D || S || W || E || 3 # || 4 $|-|'''&48''' || Z || CAPSLOCK || A || TAB || Q || ESC || 2 " || 1 !|-|'''&49''' || DEL || Joy1 fire3 || Joy1 fire2 ||Joy1 fire1||Joy1 right||Joy1 left||Joy1 down||Joy1 up|} === Spanish table ==={|{{Prettytable|width: 700px; font-size: 2em;}}|'''Bit:<br>Line''' || '''7''' || '''6''' || '''5''' || '''4''' || '''3''' || '''2''' || '''1''' || '''0'''|-|'''&40''' || F Dot || INTRO || F3 || F6 || F9 || CURDOWN || CURRIGHT || CURUP|-|'''&41''' || F0 || F2 || F1 || F5 || F8 || F7 || COPIA || CURLEFT|-|'''&42''' || CONTROL || \ ` || MAYS || F4 || ] + || RETURN || [ * || CLR|-|'''&43''' || . > || / ? || Ñ || ; : || P || @ ¦ || - = || ^ ₧|-|'''&44''' || , < || M || K || L || I || O || 9 ) || 0 _|-|'''&45''' || SPACE || N || J || H || Y || U || 7 ' || 8 (|-|'''&46''' || V || B (Joy2 fire3) || F (Joy2 fire2) || G (Joy2 fire1) || T (Joy2 right) || R (Joy2 left) || 5 % (Joy2 down)|| 6 & (Joy2 up)|-|'''&47''' || X || C || D || S || W || E || 3 # || 4 $|-|'''&48''' || Z || FIJA MAYS || A || TAB || Q || ESC || 2 " || 1 !|-|'''&49''' || BORR || Joy1 fire3 || Joy1 fire2 ||Joy1 fire1||Joy1 right||Joy1 left||Joy1 down||Joy1 up|} === French table ===
{|{{Prettytable|width: 700px; font-size: 2em;}}
|'''Bit:<br>Line''' || '''7''' || '''6''' || '''5''' || '''4''' || '''3''' || '''2''' || '''1''' || '''0'''
|'''&41''' || F0 || F2 || F1 || F5 || F8 || F7 || COPY || CURLEFT
|-
|'''&42''' || CONTROL || $ @\ || SHIFT || F4 || ] # > || RETURN || [ * < || CLR
|-
|'''&43''' || . : / || / = + || : M || ; ù % || P || @ ^ ¦ || - ) [ || ^- _
|-
|'''&44''' || , ; . || M , ? || K || L || I || O || ç 9 || à 0
|-
|'''&45''' || SPACE || N || J || H || Y || U || è 7 || ! 8
|-
|'''&46''' || V || B (Joy2 fire3) || F (Joy2 fire2) || G (Joy2 firefire1) || T (Joy2 right) || R (Joy2 left) || ( 5 (Joy2 down)|| ] 6 (Joy 2 Joy2 up)
|-
|'''&47''' || X || C || D || S || W Z || E || " 3 || ' 4
|-
|'''&48''' || Z W || CAPSLOCK || A Q || TAB || Q A || ESC || é 2 || & 1
|-
|'''&49''' || DEL || Joy 1 Fire 3 (CPC only) Joy1 fire3 || Joy 1 Fire 2 Joy1 fire2 ||Joy1 Fire 1fire1||Joy1 right||Joy1 left||Joy1 down||Joy1 up
|}
out (c),c ;4
ld a,#40 ;2
ld c,#4a d ;2 431 (+42)
loop ld b,d ;1
out (c),a ;4 select line
ini ;5 read bits and write into KEYMAP
inc a ;1
cp inc c ;1 jr cnz,loop ;2/3 (9*16+1*15=159)
ld bc,#f782 ;3
out (c),c ;4
ei ;1 (+8 =210 209 microseconds)
ret
</pre>
5,099
edits