⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lkey.h

📁 ldraw_DOS游戏开发包
💻 H
字号:
#ifndef LKEY_H
#define LKEY_H
typedef unsigned char uchar;
////////////////////////////////////////////////////////////////////////////
/* KEY NUM */
#define KEY_ESC               1     /* keyboard scan codes  */
#define KEY_1                 2
#define KEY_2                 3
#define KEY_3                 4
#define KEY_4                 5
#define KEY_5                 6
#define KEY_6                 7
#define KEY_7                 8
#define KEY_8                 9
#define KEY_9                 10
#define KEY_0                 11
#define KEY_MINUS             12
#define KEY_EQUALS            13
#define KEY_BACKSPACE         14
#define KEY_TAB               15
#define KEY_Q                 16
#define KEY_W                 17
#define KEY_E                 18
#define KEY_R                 19
#define KEY_T                 20
#define KEY_Y                 21
#define KEY_U                 22
#define KEY_I                 23
#define KEY_O                 24
#define KEY_P                 25
#define KEY_OPENBRACE         26
#define KEY_CLOSEBRACE        27
#define KEY_ENTER             28
#define KEY_CTRL              29
#define KEY_LCTRL             29
#define KEY_A                 30
#define KEY_S                 31
#define KEY_D                 32
#define KEY_F                 33
#define KEY_G                 34
#define KEY_H                 35
#define KEY_J                 36
#define KEY_K                 37
#define KEY_L                 38
#define KEY_COLON             39
#define KEY_QUOTE             40
#define KEY_TILDE             41
#define KEY_LSHIFT            42
#define KEY_BACKSLASH         43
#define KEY_Z                 44
#define KEY_X                 45
#define KEY_C                 46
#define KEY_V                 47
#define KEY_B                 48
#define KEY_N                 49
#define KEY_M                 50
#define KEY_COMMA             51
#define KEY_STOP              52
#define KEY_SLASH             53
#define KEY_RSHIFT            54
#define KEY_ASTERISK          55
#define KEY_ALT               56
#define KEY_SPACE             57
#define KEY_CAPSLOCK          58
#define KEY_F1                59
#define KEY_F2                60
#define KEY_F3                61
#define KEY_F4                62
#define KEY_F5                63
#define KEY_F6                64
#define KEY_F7                65
#define KEY_F8                66
#define KEY_F9                67
#define KEY_F10               68
#define KEY_NUMLOCK           69
#define KEY_SCRLOCK           70
#define KEY_HOME              71
#define KEY_UP                72
#define KEY_PGUP              73
#define KEY_MINUS_PAD         74
#define KEY_LEFT              75
#define KEY_5_PAD             76
#define KEY_RIGHT             77
#define KEY_PLUS_PAD          78
#define KEY_END               79
#define KEY_DOWN              80
#define KEY_PGDN              81
#define KEY_INSERT            82
#define KEY_DEL               83
#define KEY_PRTSCR            84
#define KEY_F11               87
#define KEY_F12               88
#define KEY_LWIN              91
#define KEY_RWIN              92
#define KEY_MENU              93
#define KEY_PAD               100
#define KEY_RCONTROL          120
#define KEY_ALTGR             121
#define KEY_SLASH2            122
#define KEY_PAUSE             123
#define DAT_ID(a,b,c,d)       ((a<<24) | (b<<16) | (c<<8) | d)
#define DAT_MIDI              DAT_ID('M','I','D','I')

/////////// KEYBOARD /////////////
void lkInitKey();
void lkRestKey();
char lKeyOn(char key);
////////////////////////
char  lkbhit();
void  lk_emu_old9(char mode);
char  lkpressed();
short lkgetch(short *code);
void  lkungetch(short code);
/////////// TEXT VIEW ////////////
char  lk_text_init(short mode,short scr_len,short scr_wid);
void  lk_write_data(short x,short y,char data,uchar mode);
char  lk_read_data(short x,short y,uchar mode);
char  lk_copy_data(short left,short top,short right,short bottom,char *buf,char mode); // 0 screen->mem  1 mem->screen
char  lk_fill_data(short left,short top,short right,short bottom,char data,char mode); // 0 text  1 color
char  lk_write_str(short x,short y,char *s);
char  lk_scroll(short left,short top,short right,short bottom,char direction);

void  lk_gotoxy(short x,short y);
void  lk_getxy(short *x,short *y);
void  lk_putch(char ch);
void  lk_setwindow(short left,short top,short right,short bottom);
void  lk_setcolor(short textcolor,short backgrnd);
void  lk_clear(char mode); // 0 window   1 full screen
void  lk_puts(char *s);
void  lk_printf(char *fmt,...);
void  lk_set_cursor(short mode); // 0: don't display  1,2: normal

void  lk_draw_window(short left,short top,short right,short bottom,char *name,short type);
//////// Sound Blaster ///////////
extern short lk_sb_port, lk_fm_port, lk_fm_delay1, lk_fm_delay2;
short lsAutoDetect();
char  lsWritePortC(uchar value);
uchar lsReadPortC();
short lsResetDsp(short data);
short lsGetDspVersion();
void  lsMixerWrite(short reg,short data);
short lsMixerRead(short reg);
short lsSetMixer(int digi_volume, int midi_volume);
short lsGetBlasterEnv(short *sb_port,short *sb_dma8,short *sb_dma16,short *sb_irq);

void  lsFMWrite(unsigned short reg,uchar data);
uchar lsFMRead();
void  lsFMInit();
void  lsFMSound(short frequency,short block);
void  lsFMSoundOff(short frequency,short block);
void  lsFM(short frequency,short block);
////////////////////////////////////////////////////////////////////////////
char  lk_sb_init(short addr,short irq,short dma);
char  lk_sb_rest();
int   lk_sb_play(char *buf,int len,int sample);
// Midi Player /////////////////////////////////////////////////////////////
#define TIMERS_PER_SECOND     1193181L
#define MIDI_VOICES           32       /* actual drivers may not be */
#define MIDI_TRACKS           32       /* able to handle this many */

#define MIDI_AUTO              0
#define MIDI_ADLIB             1
#define MIDI_DIGI              2
#define MIDI_MPU401            3

typedef struct MIDI                    /* a midi file */
{
   int divisions;                      /* number of ticks per quarter note */
   struct {
      unsigned char *data;             /* MIDI message stream */
      int len;                         /* length of the track data */
   } track[MIDI_TRACKS];
} MIDI;

extern char *lmMidiMapFile[2],lm_error_msg[];

void  ls_set_volume(int digi_volume,int midi_volume);
char  lmMidiInit(char driver);
char  lmMidiRest();
void  lmFM_load_map(int choice,int drums);
int   lmFM_load_ibk(char *filename, int drums);

MIDI *lmLoadMidi(char *filename,long file_offset);
void  lmDestroyMidi(MIDI*);
int   lmMidiPlay(MIDI *midi, int loop);
void  lmStopMidi();
void  lmMidiPause();
int   lmMidiSeek(int target);
void  lmMidiResume();
char  lmMidiStatus();

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -