Created
April 11, 2012 16:41
-
-
Save hashmal/2360441 to your computer and use it in GitHub Desktop.
Convert key codes to ASCII characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;set z, 0x9010 | |
set z, 0x8000 | |
:loop | |
jsr raw_key | |
ife x, 0 | |
set pc, loop | |
ife x, 0x8 | |
set pc, onkey_del | |
jsr code2ascii | |
set [z], x | |
ifn x, 0x10 | |
set pc, advance_buffer | |
set pc, loop | |
:code2ascii | |
set a, x | |
add a, KEYCODES | |
set x, [a] | |
ife [z], 0x10 | |
set PC, code2ascii_maj | |
shl x, 8 | |
shr x, 8 | |
set PC, pop | |
:code2ascii_maj | |
shr x, 8 | |
set pc, pop | |
:advance_buffer | |
add z, 1 | |
set [z], 0 | |
set pc, loop | |
:onkey_del | |
ifn [z], 0x10 | |
sub z, 1 | |
set [z], 0 | |
set pc, loop | |
:raw_key | |
set a, [keypointer] | |
add a, 0x9000 | |
set x, [a] | |
ife x, 0 | |
set pc, raw_key_end | |
set [a], 0 | |
add [keypointer], 1 | |
and [keypointer], 0xf | |
:raw_key_end | |
set pc, pop | |
:keypointer | |
dat 0 | |
:KEYCODES | |
dat 0 ;00 | |
dat 0 ;01 LEFT | |
dat 0 ;02 RIGHT | |
dat 0 ;03 UP | |
dat 0 ;04 DOWN | |
dat 0 ;05 | |
dat 0 ;06 | |
dat 0 ;07 | |
dat 0 ;08 | |
dat 0 ;09 TAB | |
dat 0x000a ;0a RETURN | |
dat 0 ;0b | |
dat 0 ;0c | |
dat 0 ;0d | |
dat 0 ;0e | |
dat 0 ;0f | |
dat 0x0010 ;10 SHIFT | |
dat 0 ;11 CTRL L | |
dat 0 ;12 ALT | |
dat 0 ;13 | |
dat 0 ;14 CAPS LOCK | |
dat 0 ;15 | |
dat 0 ;16 | |
dat 0 ;17 | |
dat 0 ;18 | |
dat 0 ;19 | |
dat 0 ;1a | |
dat 0 ;1b | |
dat 0 ;1c | |
dat 0 ;1d | |
dat 0 ;1e | |
dat 0 ;1f | |
dat 0x0020 ;20 SPACE | |
dat 0 ;21 | |
dat 0 ;22 | |
dat 0 ;23 | |
dat 0 ;24 | |
dat 0 ;25 | |
dat 0 ;26 | |
dat 0 ;27 | |
dat 0 ;28 | |
dat 0 ;29 | |
dat 0 ;2a | |
dat 0 ;2b | |
dat 0 ;2c | |
dat 0 ;2d | |
dat 0 ;2e | |
dat 0 ;2f | |
dat 0x2930 ;30 0 | |
dat 0x2131 ;31 1 | |
dat 0x4032 ;32 2 | |
dat 0x2333 ;33 3 | |
dat 0x2434 ;34 4 | |
dat 0x2535 ;35 5 | |
dat 0x5e36 ;36 6 | |
dat 0x2637 ;37 7 | |
dat 0x2a38 ;38 8 | |
dat 0x2839 ;39 9 | |
dat 0 ;3a | |
dat 0 ;3b | |
dat 0 ;3c | |
dat 0 ;3d | |
dat 0 ;3e | |
dat 0 ;3f | |
dat 0 ;40 | |
dat 0x4161 ;41 A | |
dat 0x4262 ;42 B | |
dat 0x4363 ;43 C | |
dat 0x4464 ;44 D | |
dat 0x4565 ;45 E | |
dat 0x4666 ;46 F | |
dat 0x4767 ;47 G | |
dat 0x4868 ;48 H | |
dat 0x4969 ;49 I | |
dat 0x4a6a ;4a J | |
dat 0x4b6b ;4b K | |
dat 0x4c6c ;4c L | |
dat 0x4d6d ;4d M | |
dat 0x4e6e ;4e N | |
dat 0x4f6f ;4f O | |
dat 0x5070 ;50 P | |
dat 0x5171 ;51 Q | |
dat 0x5272 ;52 R | |
dat 0x5373 ;53 S | |
dat 0x5474 ;54 T | |
dat 0x5575 ;55 U | |
dat 0x5676 ;56 V | |
dat 0x5777 ;57 W | |
dat 0x5878 ;58 X | |
dat 0x5979 ;59 Y | |
dat 0x5a7a ;5a Z | |
dat 0 ;5b CMD L | |
dat 0 ;5c | |
dat 0 ;5d CMD R | |
dat 0 ;5e | |
dat 0 ;5f | |
dat 0 ;60 | |
dat 0 ;61 | |
dat 0 ;62 | |
dat 0 ;63 | |
dat 0 ;64 | |
dat 0 ;65 | |
dat 0 ;66 | |
dat 0 ;67 | |
dat 0 ;68 | |
dat 0 ;69 | |
dat 0 ;6a | |
dat 0 ;6b | |
dat 0 ;6c | |
dat 0 ;6d | |
dat 0 ;6e | |
dat 0 ;6f | |
dat 0 ;70 | |
dat 0 ;71 | |
dat 0 ;72 | |
dat 0 ;73 | |
dat 0 ;74 | |
dat 0 ;75 | |
dat 0 ;76 | |
dat 0 ;77 | |
dat 0 ;78 | |
dat 0 ;79 | |
dat 0 ;7a | |
dat 0 ;7b | |
dat 0 ;7c | |
dat 0 ;7d | |
dat 0 ;7e | |
dat 0 ;7f | |
dat 0 ;80 | |
dat 0 ;81 | |
dat 0 ;82 | |
dat 0 ;83 | |
dat 0 ;84 | |
dat 0 ;85 | |
dat 0 ;86 | |
dat 0 ;87 | |
dat 0 ;88 | |
dat 0 ;89 | |
dat 0 ;8a | |
dat 0 ;8b | |
dat 0 ;8c | |
dat 0 ;8d | |
dat 0 ;8e | |
dat 0 ;8f | |
dat 0 ;90 | |
dat 0 ;91 | |
dat 0 ;92 | |
dat 0 ;93 | |
dat 0 ;94 | |
dat 0 ;95 | |
dat 0 ;96 | |
dat 0 ;97 | |
dat 0 ;98 | |
dat 0 ;99 | |
dat 0 ;9a | |
dat 0 ;9b | |
dat 0 ;9c | |
dat 0 ;9d | |
dat 0 ;9e | |
dat 0 ;9f | |
dat 0 ;a0 | |
dat 0 ;a1 | |
dat 0 ;a2 | |
dat 0 ;a3 | |
dat 0 ;a4 | |
dat 0 ;a5 | |
dat 0 ;a6 | |
dat 0 ;a7 | |
dat 0 ;a8 | |
dat 0 ;a9 | |
dat 0 ;aa | |
dat 0 ;ab | |
dat 0 ;ac | |
dat 0 ;ad | |
dat 0 ;ae | |
dat 0 ;af | |
dat 0 ;b0 | |
dat 0 ;b1 | |
dat 0 ;b2 | |
dat 0 ;b3 | |
dat 0 ;b4 | |
dat 0 ;b5 | |
dat 0 ;b6 | |
dat 0 ;b7 | |
dat 0 ;b8 | |
dat 0 ;b9 | |
dat 0x3a3b ;ba ; | |
dat 0x2b3d ;bb = | |
dat 0x3c2c ;bc , | |
dat 0x5f2d ;bd - | |
dat 0x3e2e ;be . | |
dat 0x3f2f ;bf / | |
dat 0x7e60 ;c0 ` | |
dat 0 ;c1 | |
dat 0 ;c2 | |
dat 0 ;c3 | |
dat 0 ;c4 | |
dat 0 ;c5 | |
dat 0 ;c6 | |
dat 0 ;c7 | |
dat 0 ;c8 | |
dat 0 ;c9 | |
dat 0 ;ca | |
dat 0 ;cb | |
dat 0 ;cc | |
dat 0 ;cd | |
dat 0 ;ce | |
dat 0 ;cf | |
dat 0 ;d0 | |
dat 0 ;d1 | |
dat 0 ;d2 | |
dat 0 ;d3 | |
dat 0 ;d4 | |
dat 0 ;d5 | |
dat 0 ;d6 | |
dat 0 ;d7 | |
dat 0 ;d8 | |
dat 0 ;d9 | |
dat 0 ;da | |
dat 0x7b5b ;db [ | |
dat 0x7c5c ;dc \ | |
dat 0x7d5d ;dd ] | |
dat 0x2227 ;de ' | |
dat 0 ;df | |
dat 0 ;e0 | |
dat 0 ;e1 | |
dat 0 ;e2 | |
dat 0 ;e3 | |
dat 0 ;e4 | |
dat 0 ;e5 | |
dat 0 ;e6 | |
dat 0 ;e7 | |
dat 0 ;e8 | |
dat 0 ;e9 | |
dat 0 ;ea | |
dat 0 ;eb | |
dat 0 ;ec | |
dat 0 ;ed | |
dat 0 ;ee | |
dat 0 ;ef | |
dat 0 ;f0 | |
dat 0 ;f1 | |
dat 0 ;f2 | |
dat 0 ;f3 | |
dat 0 ;f4 | |
dat 0 ;f5 | |
dat 0 ;f6 | |
dat 0 ;f7 | |
dat 0 ;f8 | |
dat 0 ;f9 | |
dat 0 ;fa | |
dat 0 ;fb | |
dat 0 ;fc | |
dat 0 ;fd | |
dat 0 ;fe | |
dat 0 ;ff |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment