/*-----------------------------------------------------------------------*/ /* Alternate Multiplex Interrupt Specification Library */ /* AMIS.H Public Domain 1992 Ralf Brown */ /* You may do with this software whatever you want, but */ /* common courtesy dictates that you not remove my name */ /* from it. */ /* */ /* Version 0.90 */ /* LastEdit: 9/12/92 */ /*-----------------------------------------------------------------------*/ #ifndef __AMIS_H #define __AMIS_H #define AMIS_VERSION 350 /* version 3.5 of the Alternate Multiplex Interrupt Spec */ #define AMISLIB_VERSION 90 /* version 0.90 of this library */ /*-----------------------------------------------------------------------*/ /* symbolic names for the AMIS API functions */ /*-----------------------------------------------------------------------*/ #define AMIS_INSTCHECK 0 /* installation check */ #define AMIS_ENTRYPOINT 1 /* get private entry point */ #define AMIS_REMOVE 2 /* request removal */ #define AMIS_POPUP 3 /* request popup */ #define AMIS_VECTORS 4 /* get interrupt vector usage */ #define AMIS_HOTKEYS 5 /* get hotkeys */ /*-----------------------------------------------------------------------*/ /* Return codes for various API calls */ /*-----------------------------------------------------------------------*/ /* general, applies to all standard calls */ #define AMIS_NOTIMPLEMENTED 0 #define AMIS_SUCCESSFUL 0xFF /* additional return codes for Uninstall (function 02h) */ #define AMIS_UNINST_FAILED 1 #define AMIS_UNINST_WILL_DO 2 #define AMIS_UNINST_SAFE_ON 3 #define AMIS_UNINST_SAFE_OFF 4 #define AMIS_UNINST_TRYLATER 5 /* additional return codes for Popup (function 03h) */ #define AMIS_POPUP_TRYLATER 1 #define AMIS_POPUP_WILLDO 2 #define AMIS_POPUP_BUSY 3 #define AMIS_POPUP_NEEDHELP 4 /* additional return codes for Check Interrupt Chained (function 04h) */ #define AMIS_CHAIN_DONTKNOW 1 #define AMIS_CHAIN_HOOKED 2 #define AMIS_CHAIN_HOOKED_ADDR 3 #define AMIS_CHAIN_HOOKLIST 4 #define AMIS_CHAIN_NOTUSED 0xFF /* hotkey type bits returned by Get Hotkeys (function 05h) */ #define HK_INT09ENTRY 1 /* TSR checks keys before calling INT 09h */ #define HK_INT09EXIT 2 /* TSR checks keys after calling INT 09h */ #define HK_INT15ENTRY 4 /* TSR checks keys before chaining INT 15h/AH=4Fh */ #define HK_INT15EXIT 8 /* TSR checks keys after chaining INT 15h/AH=4Fh */ #define HK_INT16OLD 0x10 /* TSR checks on INT 16/AH=00h-02h */ #define HK_INT16NEW 0x20 /* TSR checks on INT 16/AH=10h-12h */ /* hotkey shift bits returned by Get Hotkeys (function 05h) */ #define HK_NONE 0x0000 /* no shift keys */ #define HK_RSHIFT 0x0001 #define HK_LSHIFT 0x0002 #define HK_BOTHSHIFT 0x0003 /* both Shift keys must be pressed */ #define HK_ANYCTRL 0x0004 /* either Control key must be pressed */ #define HK_ANYALT 0x0008 /* either Alt key must be pressed */ #define HK_SCRLLOCK_ON 0x0010 /* ScrollLock must be on when hotkey pressed */ #define HK_NUMLOCK_ON 0x0020 /* NumLock must be on when hotkey pressed */ #define HK_CAPSLOCK_ON 0x0040 /* CapsLock must be on when hotkey pressed */ #define HK_ANYSHIFT 0x0080 /* either Shift key must be pressed */ #define HK_LCTRL 0x0100 #define HK_LALT 0x0200 #define HK_RCTRL 0x0400 #define HK_RALT 0x0800 #define HK_BOTHCTRL 0x0500 /* both Control keys must be pressed */ #define HK_BOTHALT 0x0A00 /* both Alt keys must be pressed */ #define HK_SCROLLOCK 0x1000 /* ScrollLock must be pressed with hotkey */ #define HK_NUMLOCK 0x2000 /* NumLock must be pressed with hotkey */ #define HK_CAPSLOCK 0x4000 /* CapsLock must be pressed with hotkey */ #define HK_SYSREQ 0x8000 /* SysRq must be pressed with hotkey */ /* hotkey flag bist returned by Get Hotkeys (function 05h) */ #define HK_CHAINBEFORE 1 /* TSR chains hotkey before processing it */ #define HK_CHAINAFTER 2 /* TSR chains hotkey after processing it */ #define HK_MONITOR 4 /* TSR monitors hotkey, it should be passed thru */ #define HK_NOPRESSRELEASE 8 /* hotkey won't activate if other keys pressed */ /* and released before hotkey combo completed */ #define HK_REMAPPED 0x10 /* this key is remapped into some other key */ #define HK_NOCHAIN 0 /* TSR swallows hotkey */ /* hotkey scan codes returned by Get Hotkeys (function 05h) */ #define SCAN_NONE 0 #define SCAN_ESC 1 #define SCAN_1 2 #define SCAN_2 3 #define SCAN_3 4 #define SCAN_4 5 #define SCAN_5 6 #define SCAN_6 7 #define SCAN_7 8 #define SCAN_8 9 #define SCAN_9 10 #define SCAN_0 11 #define SCAN_HYPHEN 12 #define SCAN_EQUAL 13 #define SCAN_BACKSP 14 #define SCAN_TAB 15 #define SCAN_Q 16 #define SCAN_W 17 #define SCAN_E 18 #define SCAN_R 19 #define SCAN_T 20 #define SCAN_Y 21 #define SCAN_U 22 #define SCAN_I 23 #define SCAN_O 24 #define SCAN_P 25 #define SCAN_LBRACKET 26 #define SCAN_RBRACKET 27 #define SCAN_ENTER 28 #define SCAN_CTRL 29 #define SCAN_A 30 #define SCAN_S 31 #define SCAN_D 32 #define SCAN_F 33 #define SCAN_G 34 #define SCAN_H 35 #define SCAN_J 36 #define SCAN_K 37 #define SCAN_L 38 #define SCAN_SEMICOLON 39 #define SCAN_SQUOTE 40 #define SCAN_BACKQUOTE 41 #define SCAN_LSHIFT 42 #define SCAN_BACKSLASH 43 #define SCAN_Z 44 #define SCAN_X 45 #define SCAN_C 46 #define SCAN_V 47 #define SCAN_B 48 #define SCAN_N 49 #define SCAN_M 50 #define SCAN_COMMA 51 #define SCAN_PERIOD 52 #define SCAN_SLASH 53 #define SCAN_RSHIFT 54 #define SCAN_GREYSTAR 55 #define SCAN_ALT 56 #define SCAN_SPACE 57 #define SCAN_CAPSLK 58 #define SCAN_F1 59 #define SCAN_F2 60 #define SCAN_F3 61 #define SCAN_F4 62 #define SCAN_F5 63 #define SCAN_F6 64 #define SCAN_F7 65 #define SCAN_F8 66 #define SCAN_F9 67 #define SCAN_F10 68 #define SCAN_NUMLK 69 #define SCAN_SCRLLK 70 #define SCAN_HOME 71 #define SCAN_UP 72 #define SCAN_PGUP 73 #define SCAN_GREYMINUS 74 #define SCAN_LEFT 75 #define SCAN_KP5 76 #define SCAN_RIGHT 77 #define SCAN_GREYPLUS 78 #define SCAN_END 79 #define SCAN_DOWN 80 #define SCAN_PGDN 81 #define SCAN_INS 82 #define SCAN_DEL 83 #define SCAN_SYSRQ 84 #define SCAN_F11 87 #define SCAN_F12 88 #define HK_ONRELEASE 0x80 /* hotkey activates on key release (add to scan code) */ /*-----------------------------------------------------------------------*/ /* installation flags for install_TSR() */ /*-----------------------------------------------------------------------*/ #define BEST_FIT 1 /* use best-fit rather than first-fit */ #define UMB_ONLY 2 /* don't load into low memory, only into a UMB */ #define LOW_ONLY 4 /* don't use UMB even if high memory available */ /* (note: can't set both UMB_ONLY and LOW_ONLY) */ #define USE_TOPMEM 8 /* use the top of low memory if no high memory */ /* (this is not always the best place to load) */ #define PATCH_RESIDENT 0x80 /* patch resident code with actual memblock addr */ /*-----------------------------------------------------------------------*/ /* type declarations */ /*-----------------------------------------------------------------------*/ typedef struct { int multiplex ; int version ; char far *signature ; char reserved[2] ; /* used internally */ } AMISREC ; /*-----------------------------------------------------------------------*/ /* function prototypes */ /*-----------------------------------------------------------------------*/ #if 0 AMISREC *AMIS_find_TSR(char *manufacturer,char *name,int searchtype) ; void far *AMIS_entrypoint(int multiplex) ; int AMIS_uninstall(int multiplex) ; int AMIS_popup(int multiplex,int *retcode) ; char far *AMIS_hotkeys(int multiplex) ; #endif /* 0 */ #endif /* __AMIS_H */