mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-05 06:00:33 -04:00
64 lines
1.7 KiB
C
64 lines
1.7 KiB
C
#include <skeldal_win.h>
|
||
#include "types.h"
|
||
#include <stdio.h>
|
||
#include <bios.h>
|
||
#include "event.h"
|
||
#include "devices.h"
|
||
#include <time.h>
|
||
|
||
/* 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<35>908+,-./<2F>+<2B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\"<EFBFBD>?=:_2ABCDEFGHIJKLMNOPQRSTUVWXYZ<59>\\)6=;abcdefghijklmnopqrstuvwxyz/|(; ";
|
||
char cz_table_2[]=" !\"#$%&'()*+,-./0123456789:;<=>?@<40>BCD<43>FGH<47>JK<4A>MN<4D>PQ<50>ST<53>VWX<57>Z[\\]^_`<60>bcd<63>fgh<67>jk<6A>mn<6D>pq<70>st<73>vwx<77>z{|}~ ";
|
||
char cz_table_3[]=" !\"#$%&'()*+,-./0123456789:;<=>?@AB<41><42><EFBFBD>FGHIJK<4A>M<EFBFBD><4D>PQ<50><51><EFBFBD><EFBFBD>VWXY<58>[\\]^_`ab<61><62><EFBFBD>fghijk<6A>m<EFBFBD><6D>pq<70><71><EFBFBD><EFBFBD>vwxy<78>{|}~ ";
|
||
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;
|
||
}
|