/* * Microsoft Confidential * Copyright (C) Microsoft Corporation 1992 * All Rights Reserved. * * * This is intended to supercede MULT.H as the most complete * reference we have on DOS INT 2Fh usage. The header immediately * below is an attempt to give an overview of all DOS and 3rd-party * INT 2Fhs, but equates which follow are strictly for MS-DOS-specific * functions. * * Created 4/28/92 JTP */ /* * The current set of defined multiplex channels is (* means documented): * * Channel(h) Issuer Receiver Function * ---------- ------ -------- -------- * 00h server PSPRINT print job control * *01h print/apps PRINT Queueing of files * 02h BIOS REDIR signal open/close of printers * * 05h command REDIR obtain text of net int 24 message * *06h server/assign ASSIGN Install check * * 08h external driver DRIVER.SYS interface to internal routines * * 10h sharer/server SHARE install check * 11h DOS/server Redir install check/redirection funcs * 12h sharer/redir DOS dos functions and structure maint * 13h MSNET MSNET movement of NCBs * 13h external driver IBMBIO Reset_Int_13, allows installation * of alternative INT_13 drivers after * boot_up * 14h(IBM)DOS NLSFUNC down load NLS country info,DOS 3.3 * 14h(MS) APPS POPUP MSDOS 4 popup screen functions * * ***> NOTE <*** Yes there are 2 users of 14h but since * DOS 4.XX doesn't use NLSFUNC, there is no conflict * * 15h APPS MSCDEX CD-ROM extensions interface * 15h GRAPHICS (conflicts) * 16h WIN386 WIN386 Windows communications * 17h Clipboard WINDOWS Clipboard interface * *18h Applications MS-Manager Toggle interface to manager * 19h Shell DOS 4.x shell only (SHELLB.COM) * 1Ah Ansi.sys * 1Bh Fastopen,Vdisk IBMBIO EMS INT 67H stub handler * (see IBM's XMA2EMS driver for DOS4) * * 23h stolen by DR-DOS 5.0 GRAFTABL * 27h stolen by DR-DOS 6.0 TaskMAX * 27h stolen by Novell DOS7 EMM386 * 2Ah stolen by Gammafax FaxBIOS * 2Eh stolen by Novell DOS7 GRAFTABL * 39h stolen by Kingswood Some ISV TSR thingie * * 40h OS/2 * 41h Lanman * 42h Lanman * 43h Himem * 00h XMS installation check * 08h return A20 handler number * 09h return XMS handle table address * 10h return XMS entry point address * 20h reserved for Mach 20 Himem support * 30h reserved for Himem external A20 code * E0h-E4h stolen by Novell DPMS * 44h Dosextender * 45H Windows profiler * 46h Windows/286 DOS extender * 47h Basic Compiler Vn. 7.0 * 48h Doskey * C0h-C5h stolen by PCED * 49h DOS 5.x install also used by original Compaq * Restricted DOS (RDOS) * 4Ah Multi-Purpose * multMULTSWPDSK 00h Swap Disk in drive A (BIOS) * multMULTGETHMAPTR 01h Get available HMA & ptr * multMULTALLOCHMA 02h Allocate HMA (bx == no of bytes) * multMULTTASKSHELL 05h Shell/switcher API * multMULTRPLTOM 06h Top Of Memory for RPL support * multSmartdrv 10h * multDblSpace 11h * multMRCIDetect 12h * multMRCIBackPatch 13h * multOpenBootLog 14h * multWriteBootLog 15h * multCloseBootLog 16h * multNWRedir 17h * * 4Bh Task Switcher API * * 4Ch APPS APM Advanced power management (obsolete) * * 4Dh Kana Kanji Converter, MSKK * 4Eh Kana Kanji Converter, MSKK * 4Fh Multilingual DOS, MSKK * * 50h SETNLS (new for DOS 7.00 (Jaguar)) * * 51h ODI real mode support driver (for Chicago) * * 52h Reserved by MS for Stac Electronics * (but stolen by JAM Real-Time Data Compression) * * 53h POWER(APM) For broadcasting APM events * 54h APPS POWER(APM) To control POWER status from apps * 53h (stolen by TesSeRact TSR library) * * 55h COMMAND.COM * multCOMFIRST 00h API to determine whether 1st * instance of command.com * 56h INTERLINK * 57h IOMEGA * * 58h ChiNet ChiNet transition interface used in * loading Chicago from a remote drive * * 5Dh (stolen by Award PCDISK.EXE v1.02c PCMCIA/ATA driver) * 60h (stolen by IPLAY by Prime and Excalibur) * 62h (stolen by PC Tools virus protector) * * 70h APPS APPS for software licensing * * 7Ah Novell (hey, how'd they get in our range?) * * End of Microsoft-reserved range * * ABh Unspecified IBM use * ACh Graphics * ADh NLS (toronto) (DISPLAY.SYS and KEYB.COM) * AEh COMMAND.COM Installable command support * AFh Mode * B0h GRAFTABL GRAFTABL * B7h APPEND * B8h Networks Misc * B9h PC Network * BCh EGA.SYS * BFh PC LAN Program * * End of IBM-reserved range (although it seems to have become a jointly * reserved range....) * * D7h Banyan VINES * D8h Novell * * Old guidelines governing use and future assignment of multiplex #'s * (they must be old because no one seems to have paid them much attention) * * MUX 00-3F reserved for IBM * MUX 80-BF reserved for IBM * MUX 40-7F reserved for Microsoft * MUX C0-FF users * * New guidelines governing use and future assignment of multiplex #'s * * + Just keep new MS multiplex assignments below 80h, ok? */ #define INT_MULT 0x2F /* PRINT services */ #define I2F_PSPRINT 0x00 #define I2FPSPRINT_YIELD 0x80 #define I2F_PRINT 0x01 #define I2FPRINT_INSTALLCHECK 0x00 #define I2FPRINT_QUEUEFILE 0x01 #define I2FPRINT_REMOVEFILE 0x02 #define I2FPRINT_REMOVEALL 0x03 #define I2FPRINT_FREEZEQUEUE 0x04 #define I2FPRINT_THAWQUEUE 0x05 #define I2FPRINT_GETDEVICE 0x06 #define I2F_PCLAN_REDIR 0x02 #define I2F_HARDERR 0x05 #define I2FHARDERR_INSTALLCHECK 0x00 #define I2FHARDERR_EXPAND_EXTERR 0x01 #define I2FHARDERR_EXPAND_PARMERR 0x02 #define I2F_ASSIGN 0x06 #define I2FASSIGN_INSTALLCHECK 0x00 #define I2FASSIGN_GET_DRIVE_ASSIGNS 0x01 #define I2F_DRIVER 0x08 #define I2FDRIVER_INSTALLCHECK 0x00 #define I2FDRIVER_ADD_DEVICE 0x01 #define I2FDRIVER_EXEC_REQUEST 0x02 #define I2FDRIVER_GET_DRIVE_DATA 0x03 #define MultSHARE 0x10 // old-style definition #define I2F_SHARE 0x10 #define I2FSHARE_INSTALLCHECK 0x00 // gshare.asm: MFT_Enter #define I2FSHARE_MAKEENTRY 0x01 // gshare.asm: MFT_Enter #define I2FSHARE_CLOSE 0x02 // gshare.asm: MFTClose #define I2FSHARE_CLOSEBYUID 0x03 // gshare.asm: MFTClu #define I2FSHARE_CLOSEBYPID 0x04 // gshare.asm: MFTCloseP #define I2FSHARE_CLOSEBYNAME 0x05 // gshare.asm: MFTCloN #define I2FSHARE_SETBYTELOCK 0x06 // gshare.asm: Set_Mult_Block #define I2FSHARE_CLRBYTELOCK 0x07 // gshare.asm: Clr_Mult_Block #define I2FSHARE_CHKBYTELOCK 0x08 // gshare.asm: Chk_Block #define I2FSHARE_GETENTRY 0x09 // gshare2.asm: MFT_Get #define I2FSHARE_SAVESFTTOFCB 0x0A // gshare2.asm: ShSave #define I2FSHARE_CHKFCB 0x0B // gshare2.asm: ShChk #define I2FSHARE_COLLAPSESFTS 0x0C // gshare2.asm: ShCol #define I2FSHARE_CLOSEFILE 0x0D // gshare2.asm: ShCloseFile #define I2FSHARE_UPDATESFTS 0x0E // gshare2.asm: ShSU #define MultNET 0x11 // old-style definitions #define MultIFS 0x11 #define I2F_REDIR 0x11 #define I2FREDIR_INSTALLCHECK 0x00 #define I2FREDIR_RMDIR 0x01 #define I2FREDIR_SEQ_RMDIR 0x02 #define I2FREDIR_MKDIR 0x03 #define I2FREDIR_SEQ_MKDIR 0x04 #define I2FREDIR_CHDIR 0x05 #define I2FREDIR_CLOSE 0x06 #define I2FREDIR_COMMIT 0x07 #define I2FREDIR_READ 0x08 #define I2FREDIR_WRITE 0x09 #define I2FREDIR_LOCK 0x0A #define I2FREDIR_UNLOCK 0x0B #define I2FREDIR_DISK_INFO 0x0C #define I2FREDIR_SET_FILE_ATTR 0x0D #define I2FREDIR_SEQ_SET_FILE_ATTR 0x0E #define I2FREDIR_GET_FILE_INFO 0x0F #define I2FREDIR_SEQ_GET_FILE_INFO 0x10 #define I2FREDIR_RENAME 0x11 #define I2FREDIR_SEQ_RENAME 0x12 #define I2FREDIR_DELETE 0x13 #define I2FREDIR_SEQ_DELETE 0x14 #define I2FREDIR_OPEN 0x15 #define I2FREDIR_SEQ_OPEN 0x16 #define I2FREDIR_CREATE 0x17 #define I2FREDIR_SEQ_CREATE 0x18 #define I2FREDIR_SEQ_SEARCH_FIRST 0x19 #define I2FREDIR_SEQ_SEARCH_NEXT 0x1A #define I2FREDIR_SEARCH_FIRST 0x1B #define I2FREDIR_SEARCH_NEXT 0x1C #define I2FREDIR_ABORT 0x1D #define I2FREDIR_ASSOPER 0x1E #define I2FREDIR_PRINTER_SET_STRING 0x1F #define I2FREDIR_FLUSHBUF 0x20 #define I2FREDIR_BUFWRITE 0x21 #define I2FREDIR_RESETENVIRONMENT 0x22 #define I2FREDIR_SPOOLCHECK 0x23 #define I2FREDIR_SPOOLCLOSE 0x24 #define I2FREDIR_DEVICEOPER 0x25 #define I2FREDIR_SPOOLECHOCHECK 0x26 #define I2FREDIR_UNUSED1 0x27 #define I2FREDIR_UNUSED2 0x28 #define I2FREDIR_UNUSED3 0x29 #define I2FREDIR_CLOSEFILES_FOR_UID 0x2A #define I2FREDIR_DEVICE_IOCTL 0x2B #define I2FREDIR_UPDATE_CB 0x2C #define I2FREDIR_FILE_XATTRIBUTES 0x2D #define I2FREDIR_XOPEN 0x2E #define I2FREDIR_DEPENDENT_IOCTL 0x2F #define I2FREDIR_PIPE_PEEK 0x31 #define MultDOS 0x12 // old-style definition #define I2F_DOS 0x12 // DOS call back #define I2FDOS_INSTALLCHECK 0x00 #define I2FDOS_CLOSE 0x01 #define I2FDOS_RECSET 0x02 #define I2FDOS_GET_DOSGROUP 0x03 #define I2FDOS_PATHCHRCMP 0x04 #define I2FDOS_OUT 0x05 #define I2FDOS_NET_I24_ENTRY 0x06 #define I2FDOS_PLACEBUF 0x07 #define I2FDOS_FREE_SFT 0x08 #define I2FDOS_BUFWRITE 0x09 #define I2FDOS_SHARE_VIOLATION 0x0A #define I2FDOS_SHARE_ERROR 0x0B #define I2FDOS_SET_SFT_MODE 0x0C #define I2FDOS_DATE16 0x0D #define I2FDOS_UNUSED1 0x0E // (was SETVISIT) #define I2FDOS_SCANPLACE 0x0F #define I2FDOS_UNUSED2 0x10 // (was SKIPVISIT) #define I2FDOS_STRCPY 0x11 #define I2FDOS_STRLEN 0x12 #define I2FDOS_UCASE 0x13 #define I2FDOS_POINTCOMP 0x14 #define I2FDOS_CHECKFLUSH 0x15 #define I2FDOS_SFFROMSFN 0x16 #define I2FDOS_GETCDSFROMDRV 0x17 #define I2FDOS_GET_USER_STACK 0x18 #define I2FDOS_GETTHISDRV 0x19 #define I2FDOS_DRIVEFROMTEXT 0x1A #define I2FDOS_SETYEAR 0x1B #define I2FDOS_DSUM 0x1C #define I2FDOS_DSLIDE 0x1D #define I2FDOS_STRCMP 0x1E #define I2FDOS_INITCDS 0x1F #define I2FDOS_PJFNFROMHANDLE 0x20 #define I2FDOS__NAMETRANS 0x21 #define I2FDOS_CAL_LK 0x22 #define I2FDOS_DEVNAME 0x23 #define I2FDOS_IDLE 0x24 #define I2FDOS_DSTRLEN 0x25 #define I2FDOS_NLS_OPEN 0x26 // DOS 3.3 #define I2FDOS__CLOSE 0x27 // DOS 3.3 #define I2FDOS_NLS_LSEEK 0x28 // DOS 3.3 #define I2FDOS__READ 0x29 // DOS 3.3 #define I2FDOS_FASTINIT 0x2A // (for FASTOPEN; see fastopen.inc) #define I2FDOS_NLS_IOCTL 0x2B // DOS 3.3 #define I2FDOS_GETDEVLIST 0x2C // DOS 3.3 #define I2FDOS_NLS_GETEXT 0x2D // DOS 3.3 #define I2FDOS_MSG_RETRIEVAL 0x2E // DOS 4.0 #define I2FDOS_FAKE_VERSION 0x2F // DOS 4.0 #define I2FDOS_FndSFTPathInfo 0x30 // Return SFT path/cluster info #define I2FDOS_SetFAT32Flgs 0x31 // Signal FAT32 win support and TSR flags #define I2F_DISK 0x13 #define I2FDISK_SET_INT_HDLR 0x1300 #define NLSFUNC 0x14 // old-style definition #define I2F_NLSFUNC 0x14 // NLSFUNC CALLS, DOS 3.3 #define I2FNLSFUNC_INSTALLCHECK 0x00 #define I2FNLSFUNC_CHGCODEPAGE 0x01 #define I2FNLSFUNC_GETEXTINFO 0x02 #define I2FNLSFUNC_SETCODEPAGE 0x03 #define I2FNLSFUNC_GETCNTRY 0x04 #define I2F_MSCDEX 0x15 #define I2F_DOS386 0x16 #define I2FDOS386_Logo 0x0E // IO.SYS service for logo management #define I2FDOS386_INT10 0x0F // IO.SYS service to replace INT 10h hook #define I2FDOS386_Get_Shell 0x11 // IO.SYS service to return shell info // Flags returned in BX by the I2FDOS386_Get_Shell call #define SHELLFLAG_CLEAN 0x01 #define SHELLFLAG_DOSCLEAN 0x02 #define SHELLFLAG_NETCLEAN 0x04 #define SHELLFLAG_INTERACTIVE 0x08 #define SHELLFLAG_NOAUTO 0x20 #define SHELLFLAG_DISABLELOADTOP 0x40 #define SHELLFLAG_MSDOSMODE 0x80 #define I2FDOS386_Get_BIOS_Data 0x12 // IO.SYS service to return IO.SYS data #define I2FDOS386_Get_SYSDAT_Path 0x13 // IO.SYS service to return path to SYSTEM.DAT #define I2FDOS386_Set_SYSDAT_Path 0x14 // IO.SYS service to set path to SYSTEM.DAT #define I2F_CLIPBOARD 0x17 #define I2F_MSMANAGER 0x18 // used by old MS-DOS Manager program #define I2F_DOS4SHELL 0x19 #define MultANSI 0x1A // old-style definition #define I2F_ANSI 0x1A // ANSI.SYS multiplex # #define I2FANSI_INSTALLCHECK 0x00 // install check for ANSI #define I2FANSI_IOCTL 0x01 // INT 2Fh interface to IOCTL #define I2FANSI_DA_INFO 0x02 // information passing to ANSI #define I2F_XMA2EMS 0x1B // is this no longer used??? #define I2F_OS2_3XBOX 0x40 #define I2F3XBOX_SWITCHBGND 0x01 #define I2F3XBOX_SWITCHFGND 0x02 #define I2F_LANMAN41 0x41 #define I2F_LANMAN42 0x42 #define I2F_XMS 0x43 // see HIMEM.SYS for details #define I2FXMS_INSTALLCHECK 0x00 #define I2FXMS_GETADDRESS 0x10 // private functions: // 08h - return A20 handler // 09h - return XMS handle table address // 20h - used for Mach20 version // 30h - check for external A20 handler #define I2F_DOSX 0x44 // what is this exactly??? #define I2F_WINPROFILE 0x45 // what is this exactly??? #define I2F_WIN30 0x46 #define I2FWIN30_INSTALLCHECK 0x80 #define I2F_BASCOM7 0x47 #define I2F_DOSKEY 0x48 #define I2FDOSKEY_INSTALLCHECK 0x00 // AL == non-zero if installed #define I2FDOSKEY_READLINE 0x10 // DS:DX -> line input buffer #define I2F_DOSINSTALL 0x49 #define MultMULT 0x4A // old-style definition #define I2F_MULTIPURPOSE 0x4A // 0h Swap disk function for single floppy drive m/cs // BIOS broadcasts with cx==0, and apps who handle // swap disk messaging set cx == -1. BIOS sets dl == requested // drive // // 1h Get available HMA & pointer to it. Returns in BX & ES:DI // // 2h Allocate HMA. BX == number of bytes in HMA to be allocated // returns pointer in ES:DI // // 3h Allocate HMA high. BX == number of bytes in HMA to be allocated // returns pointer in ES:DI // // 4h Query HMA arena header. ES:DI points to first HMA arena header. // // 5h Switcher API // // 6h Top of Memory for RPL // BIOS issues INT 2Fh/AX=4A06 & DX=top of mem and any RPL // code present in TOM should respond with a new TOM in DX // to protect itself from MSLOAD & SYSINIT tromping over it. // SYSINIT builds an arena with owner type 8 & name 'RPL' to // protect the RPL code from COMMAND.COM transient protion. // It is the responsibility of RPL program to release the mem. // // 7h Reserved for PROTMAN support // 10h smartdrv 4.0 // 11h dblspace api // 12h MRCI api // 13h MRCI backpatch #define MultMULTSWPDSK 0x00 // old-style definitions #define MultMULTGETHMAPTR 0x01 // #define MultMULTALLOCHMA 0x02 // #define MultMULTALLOCHMAEXT 0x03 // #define MultMULTGETHMAARENA 0x04 // #define MultMULTRPLTOM 0x06 // #define I2FMULT_SWPDSK 0x00 // swap Disk in drive A (BIOS) #define I2FMULT_GETHMAPTR 0x01 // get available HMA & ptr #define I2FMULT_SUBALLOCHMA 0x02 // allocate HMA (bx == # bytes) #define I2FMULT_SHELL 0x05 // shell/switcher API #define I2FMULT_RPLTOM 0x06 // top-of-memory for RPL support #define I2FMULT_SMARTDRV 0x10 // interface to SmartDrv // Following values go in the BX register for I2FMULT_SMARTDRV #define MULT_SMARTDRV_GET_STATS 0x0000 #define MULT_SMARTDRV_COMMIT_ALL 0x0001 #define MULT_SMARTDRV_REINITIALIZE 0x0002 #define MULT_SMARTDRV_CACHE_DRIVE 0x0003 // These are the MULT_SMARTDRV_CACHE_DRIVE sub-sub-sub functions that go in DL #define MULT_SMARTDRVCACHE_DRIVE_GET 0x00 #define MULT_SMARTDRVCACHE_DRIVE_READ_ENABLE 0x01 #define MULT_SMARTDRVCACHE_DRIVE_READ_DISABLE 0x02 #define MULT_SMARTDRVCACHE_DRIVE_WRIT_ENABLE 0x03 #define MULT_SMARTDRVCACHE_DRIVE_WRIT_DISABLE 0x04 #define MULT_SMARTDRV_GET_INFO 0x0004 #define MULT_SMARTDRV_GET_ORIGINAL_DD_HEADER 0x0007 #define MULT_SMARTDRV_SETGET_PROMPTFLUSH 0x0008 #define MULT_SMARTDRV_UNHOOK 0x0009 #define MULT_SMARTDRV_SHOW_SDISKERR 0x1234 #define I2FMULT_DBLSPACE 0x11 // interface to DblSpace #define I2FMULT_MRCI 0x12 // interface to MRCI #define I2FMULT_MRCIBackPatch 0x13 // interface to MRCI backpatch #define I2FMULT_MULTEMM386 0x15 // Used by EMM386 for IOPORTTRAP #define I2FMULT_OpenBootLog 0x16 // Open BootLog file #define I2FMULT_WriteBootLog 0x17 // Write to BootLog File #define I2FMULT_CloseBootLog 0x18 // Close BootLog File #define I2FMULT_NWRedir 0x19 // NWRedir control #define I2FMULT_MRCIBroadcast 0x20 // MRCI detection broadcast //#define I2FMULT_FlushBootLog 0x21 // Obsolete since no dblspace drive anymore #define I2FMULT_EXECOVLY 0x30 // Overlay exec broadcast #define I2FMULT_SetByte 0x31 // Set a byte in OS data area #define I2FMULT_LogoServices 0x32 // Alias to logo services (AX=160Eh) #define I2FMULT_ShellServices 0x33 // Alias to shell services (AX=1611h) // The following are subfunctions of I2FMULT_TASKSHELL (specified in SI) #define I2FMULTSHELL_CINIT_PROGRAM_LIST 0x00 #define I2FMULTSHELL_CADD_PROGRAM_TO_LIST 0x01 #define I2FMULTSHELL_CGO_Z_NEXT 0x02 #define I2FMULTSHELL_CGO_Z_PREV 0x03 #define I2FMULTSHELL_CDELETE_PROGRAM_FROM_LIST 0x04 #define I2FMULTSHELL_CGO_NEXT 0x05 #define I2FMULTSHELL_CGET_ITH_PROGRAM_STRING 0x06 #define I2FMULTSHELL_CGET_LIST_LENGTH 0x07 #define I2FMULTSHELL_CGET_GLOBAL_SWITCH_DATA 0x08 #define I2FMULTSHELL_CGET_ITH_ENTRY_DATA 0x09 #define I2FMULTSHELL_MAX_HANDLER_CALL 0x09 #define I2FMULTSHELL_CADD_PARAMS 0x0A #define I2FMULTSHELL_CGET_EXITCODE 0x0B #define I2FMULTSHELL_CTOTOP_ITH_LIST_PE 0x0C #define I2FMULT_SystemBootTime 0x50 // System boot timestamp #define I2F_TASKAPI 0x4B #define I2FTASK_BUILD_CHAIN 0x01 #define I2FTASKBC_INIT_SWITCHER 0x00 #define I2FTASKBC_QUERY_SUSPEND 0x01 #define I2FTASKBC_SUSPEND 0x02 #define I2FTASKBC_RESUME 0x03 #define I2FTASKBC_SESSION_ACTIVE 0x04 #define I2FTASKBC_CREATE 0x05 #define I2FTASKBC_DESTROY 0X06 #define I2FTASKBC_SWITCHER_EXIT 0x07 #define I2FTASK_DETECT_SWITCHER 0x02 #define I2FTASKDS_GETVERSION 0x00 #define I2FTASKDS_TESTMEMORYREGION 0x01 #define I2FTASKDS_SUSPEND_SWITCHER 0x02 #define I2FTASKDS_RESUME_SWITCHER 0x03 #define I2FTASKDS_HOOK_CALLOUT 0x04 #define I2FTASKDS_UNHOOK_CALLOUT 0x05 #define I2FTASKDS_QUERY_API_SUPPORT 0x06 #define I2FTASK_ALLOCATE_SW_ID 0x03 #define I2FTASK_FREE_SW_ID 0x04 #define I2FTASK_GET_INST_DATA 0x05 #define I2FTASK_RESTART_CMD 0x20 #define I2FTASK_GET_STARTTIME 0x22 #define I2FTASK_GET_REG_CODE_PAGE 0x28 #define I2FTASK_GET_REGISTRY_CACHE 0x29 /* * These are obselete functions for APM * See functions 0x53 & 0x54 */ #define MultAPM 0x4C // old-style definition #define I2F_APM 0x4C #define I2FAPM_VERCHK 0x00 #define I2FAPM_SUSSYSREQ 0x01 #define I2FAPM_APM_SUS_RES_BATT_NOTIFY 0xFF #define I2F_KKC4D 0x4D #define I2F_KKC4E 0x4E #define I2F_MULTILANGDOS 0x4F #define I2F_SETNLS 0x50 // used by SETNLS #define I2F_ODI 0x51 #define I2F_STAC 0x52 // reserved by MS for Stac Electronics /* * 0x53 & 0x54 are used by POWER.EXE for broadcasting APM events * and to control POWER.EXE's status from application programs * For details about sub-function numbers refer to ROMDOS 5.0 Technical * Specification document */ #define MultPwr_BRDCST 0x53 // old-style definitions #define MultPwr_API 0x54 // #define I2F_POWER_BRDCST 0x53 // used by POWER.EXE to broadcast APM events #define I2F_POWER_API 0x54 // used for accessing POWER.EXE's API #define I2F_COMMAND 0x55 // used by COMMAND.COM /* * 0x56 - assigned to Sewell Development (InterLnk) * 0x57 - assigned to Iomega Corp. */ #define I2F_INTERLNK 0x56 #define I2F_IOMEGA 0x57 /* * * 0x58 - assigned to Chicago network transition interface * This supports loading Chicago from a remote drive. */ #define I2F_NETLOAD 0x58 #define I2F_SWLICENSING 0x70 #define I2F_NOVELL 0x7A // hey, how'd they get in our range? /****************************************************************************/ /* End of MS-reserved range */ /****************************************************************************/ #define I2F_IBMRESERVED 0xAB /* GRAPHICS services */ #define I2F_GRAPHICS 0xAC #define I2F_INSTALLCHECK 0x00 /* NLS services */ #define I2F_NLS 0xAD #define I2FNLS_INSTALLCHECK 0x00 #define I2FNLS_UNKNOWN1 0x01 #define I2FNLS_UNKNOWN2 0x02 #define I2FNLS_UNKNOWN3 0x03 #define I2FNLS_UNKNOWN4 0x04 #define I2FNLS_UNKNOWN5 0x10 #define I2FNLS_UNKNOWN6 0x40 // called by PRINT.COM (4.01) #define I2FKEYB_INSTALLCHECK 0x80 #define I2FKEYB_SETKBCP 0x81 #define I2FKEYB_SETKBMAP 0x82 #define I2FKEYB_GETKBMAP 0x83 /* COMMAND call-outs * * Note: APPEND hooks this call to avoid execing the actual APPEND utility */ #define I2F_INSTCMD 0xAE // (DX must be -1) #define I2FINSTCMD_INSTALLCHECK 0x00 // AL == 0FFh if private command #define I2FINSTCMD_EXECUTE 0x01 // #define I2F_MODE 0xAF /* GRAFTABL services */ #define I2F_GRAFTABL 0xB0 #define I2FGRAFTABL_INSTALLCHECK 0x00 #define I2FGRAFTABL_GETFONT 0x01 /* APPEND services */ #define I2F_APPEND 0xB7 #define I2FAPPEND_INSTALLCHECK 0x00 // AL == -1 if installed #define I2FAPPEND_OLDDIRPTR 0x01 // (not supported anymore) #define I2FAPPEND_APPVER 0x02 // AX == -1 ("not network version") #define I2FAPPEND_DISABLE 0x03 // Disable APPEND (was for TopView) #define I2FAPPEND_DIRPTR 0x04 // ES:DI -> directory list #define I2FAPPEND_GETSTATE 0x06 // APPEND flags only (BX) #define I2FAPPEND_SETSTATE 0x07 // APPEND flags only (BX) #define I2FAPPEND_VERSION 0x10 // APPEND flags (AX) and version (DX) #define I2FAPPEND_TRUENAME 0x11 // set one-shot true-name return #define I2FAPPENDF_ENABLE 0x0001 #define I2FAPPENDF_DRIVEOVERRIDE 0x1000 #define I2FAPPENDF_PATHOVERRIDE 0x2000 #define I2FAPPENDF_APPENDENV 0x4000 #define I2FAPPENDF_SRCHEXECOVERRIDE 0x8000 /* EGA.SYS services (in DOS5, WINDOWS3) */ #define I2F_EGASYS 0xBC #define I2FEGASYS_INSTALLCHECK 0x00 #define I2FEGASYS_GETVERSION 0x06 /****************************************************************************/ /* End of IBM-reserved range */ /****************************************************************************/