📄 pc_hw.h
字号:
/* * PC/HW routine collection v1.4 for DOS/DJGPP * * Copyright (C) 2002 - Daniel Borca * Email : dborca@yahoo.com * Web : http://www.geocities.com/dborca */#ifndef PC_HW_H_included#define PC_HW_H_included#include <dpmi.h>#include <stdlib.h>/* * misc C definitions */#define FALSE 0#define TRUE !FALSE#define SQR(x) ((x) * (x))#define MIN(x,y) (((x) < (y)) ? (x) : (y))#define MAX(x,y) (((x) > (y)) ? (x) : (y))#define MID(x,y,z) MAX((x), MIN((y), (z)))typedef void (*VFUNC) (void);typedef void (*PFUNC) (void *);typedef void (*MFUNC) (int x, int y, int z, int b);/* * atexit */int pc_atexit (VFUNC f);int pc_clexit (VFUNC f);/* * locked memory */#define ENDOFUNC(x) static void x##_end() { }#define LOCKFUNC(x) _go32_dpmi_lock_code((void *)x, (long)x##_end - (long)x)#define LOCKDATA(x) _go32_dpmi_lock_data((void *)&x, sizeof(x))#define LOCKBUFF(x, l) _go32_dpmi_lock_data((void *)x, l)void *pc_malloc (size_t size);/* * IRQ */#define ENABLE() __asm __volatile ("sti")#define DISABLE() __asm __volatile ("cli")extern int pc_install_irq (int i, int (*handler) ());extern int pc_remove_irq (int i);/* * keyboard */#define KB_SHIFT_FLAG 0x0001#define KB_CTRL_FLAG 0x0002#define KB_ALT_FLAG 0x0004#define KB_LWIN_FLAG 0x0008#define KB_RWIN_FLAG 0x0010#define KB_MENU_FLAG 0x0020#define KB_SCROLOCK_FLAG 0x0100#define KB_NUMLOCK_FLAG 0x0200#define KB_CAPSLOCK_FLAG 0x0400#define KB_INALTSEQ_FLAG 0x0800#define KB_ACCENT1_FLAG 0x1000#define KB_ACCENT2_FLAG 0x2000#define KB_ACCENT3_FLAG 0x4000#define KB_ACCENT4_FLAG 0x8000#define KEY_A 1#define KEY_B 2#define KEY_C 3#define KEY_D 4#define KEY_E 5#define KEY_F 6#define KEY_G 7#define KEY_H 8#define KEY_I 9#define KEY_J 10#define KEY_K 11#define KEY_L 12#define KEY_M 13#define KEY_N 14#define KEY_O 15#define KEY_P 16#define KEY_Q 17#define KEY_R 18#define KEY_S 19#define KEY_T 20#define KEY_U 21#define KEY_V 22#define KEY_W 23#define KEY_X 24#define KEY_Y 25#define KEY_Z 26#define KEY_0 27#define KEY_1 28#define KEY_2 29#define KEY_3 30#define KEY_4 31#define KEY_5 32#define KEY_6 33#define KEY_7 34#define KEY_8 35#define KEY_9 36#define KEY_0_PAD 37#define KEY_1_PAD 38#define KEY_2_PAD 39#define KEY_3_PAD 40#define KEY_4_PAD 41#define KEY_5_PAD 42#define KEY_6_PAD 43#define KEY_7_PAD 44#define KEY_8_PAD 45#define KEY_9_PAD 46#define KEY_F1 47#define KEY_F2 48#define KEY_F3 49#define KEY_F4 50#define KEY_F5 51#define KEY_F6 52#define KEY_F7 53#define KEY_F8 54#define KEY_F9 55#define KEY_F10 56#define KEY_F11 57#define KEY_F12 58#define KEY_ESC 59#define KEY_TILDE 60#define KEY_MINUS 61#define KEY_EQUALS 62#define KEY_BACKSPACE 63#define KEY_TAB 64#define KEY_OPENBRACE 65#define KEY_CLOSEBRACE 66#define KEY_ENTER 67#define KEY_COLON 68#define KEY_QUOTE 69#define KEY_BACKSLASH 70#define KEY_BACKSLASH2 71#define KEY_COMMA 72#define KEY_STOP 73#define KEY_SLASH 74#define KEY_SPACE 75#define KEY_INSERT 76#define KEY_DEL 77#define KEY_HOME 78#define KEY_END 79#define KEY_PGUP 80#define KEY_PGDN 81#define KEY_LEFT 82#define KEY_RIGHT 83#define KEY_UP 84#define KEY_DOWN 85#define KEY_SLASH_PAD 86#define KEY_ASTERISK 87#define KEY_MINUS_PAD 88#define KEY_PLUS_PAD 89#define KEY_DEL_PAD 90#define KEY_ENTER_PAD 91#define KEY_PRTSCR 92#define KEY_PAUSE 93#define KEY_ABNT_C1 94#define KEY_YEN 95#define KEY_KANA 96#define KEY_CONVERT 97#define KEY_NOCONVERT 98#define KEY_AT 99#define KEY_CIRCUMFLEX 100#define KEY_COLON2 101#define KEY_KANJI 102#define KEY_MODIFIERS 103#define KEY_LSHIFT 103#define KEY_RSHIFT 104#define KEY_LCONTROL 105#define KEY_RCONTROL 106#define KEY_ALT 107#define KEY_ALTGR 108#define KEY_LWIN 109#define KEY_RWIN 110#define KEY_MENU 111#define KEY_SCRLOCK 112#define KEY_NUMLOCK 113#define KEY_CAPSLOCK 114#define KEY_MAX 115int pc_install_keyb (void);void pc_remove_keyb (void);int pc_keypressed (void);int pc_readkey (void);int pc_keydown (int code);int pc_keyshifts (void);/* * timer */int pc_install_int (PFUNC func, void *parm, unsigned int freq);int pc_remove_int (int fid);int pc_adjust_int (int fid, unsigned int freq);void pc_remove_timer (void);/* * mouse */int pc_install_mouse (void);void pc_remove_mouse (void);MFUNC pc_install_mouse_handler (MFUNC handler);void pc_mouse_area (int x1, int y1, int x2, int y2);void pc_mouse_speed (int xspeed, int yspeed);int pc_query_mouse (int *x, int *y, int *z);void pc_warp_mouse (int x, int y);/* * standard redirection */int pc_open_stdout (void);int pc_open_stderr (void);void pc_close_stdout (void);void pc_close_stderr (void);#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -