#include #include "types.h" #include #include //#include #include #include "event.h" #include "devices.h" #include /* Data touched at mouse callback time -- they are in a structure to simplify calculating the size of the region to lock. */ extern MS_EVENT win_mouseEvent; TMS_BASIC_INFO ms_basic_info={0}; static char ms_keys; void get_ms_event(MS_EVENT *event) { CheckMessageQueue(); *event=win_mouseEvent; win_mouseEvent.event=0; } char cz_table_1[]=" 1!3457­908+,-./‚+ˆ¨‡©‘˜ ¡\"–?=:_2ABCDEFGHIJKLMNOPQRSTUVWXYZ£\\)6=;abcdefghijklmnopqrstuvwxyz/|(; "; char cz_table_2[]=" !\"#$%&'()*+,-./0123456789:;<=>?@BCDFGH‹JKŠMN•PQ«ST—VWXZ[\\]^_` bcd‚fgh¡jkmn¢pqªst£vwx˜z{|}~ "; char cz_table_3[]=" !\"#$%&'()*+,-./0123456789:;<=>?@AB€…‰FGHIJKœM¥§PQž›†¦VWXY’[\\]^_`ab‡ƒˆfghijkŒm¤“pq©¨Ÿ–vwxy‘{|}~ "; char *cz_key_tabs[]={cz_table_1,cz_table_2,cz_table_3}; void keyboard(EVENT_MSG *msg,void *user_data) { int i; static char cz_mode=0; char c,d; msg;user_data; if (msg->msg==E_WATCH) { *otevri_zavoru=1; if (!_bios_keybrd(_KEYBRD_READY)) return; i=_bios_keybrd(_KEYBRD_READ); d=i>>8; c=i & 0xff; if (c=='+' && d<55 && !cz_mode) cz_mode=2; else if (c=='=' && d<55 && !cz_mode) cz_mode=1; else if (c>32 && c<127 && d<=53) { c=cz_key_tabs[cz_mode][c-32]; i=d; i=(i<<8)+c; send_message(E_KEYBOARD,i); cz_mode=0; } else send_message(E_KEYBOARD,i); } } char ms_get_keycount() { return ms_keys; }