COMMAND.H
资源名称:drdossrc.zip [点击查看]
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:8k
源码类别:
操作系统开发
开发平台:
Asm
- /*
- ; File : $Workfile$
- ;
- ; Description :
- ;
- ; Original Author : DIGITAL RESEARCH
- ;
- ; Last Edited By : $CALDERA$
- ;
- ;-----------------------------------------------------------------------;
- ; Copyright Work of Caldera, Inc. All Rights Reserved.
- ;
- ; THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
- ; PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
- ; ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
- ; WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
- ; THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
- ; HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
- ; AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
- ; AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
- ; COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
- ; CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
- ; TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
- ; CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
- ; AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
- ; CIVIL LIABILITY.
- ;-----------------------------------------------------------------------;
- ;
- ; *** Current Edit History ***
- ; *** End of Current Edit History ***
- ;
- ; $Log$
- ;
- ; ENDLOG
- */
- #define SWITCH_ENABLED 1
- #define DOSPLUS 1
- #define BETA 1
- #define PASSWORD 1
- /*
- * DOS Plus Command Line Processor definitions
- */
- #define PIPE_CHAR '|' /* Invoke PIPE handling */
- #define MULTI_CHAR '!' /* Character allows multiple commands on */
- /* one command line or in batch file line */
- #define BACK_CHAR '&' /* This character forces the preceeding */
- /* command to be placed into the background. */
- #define ESC_CHAR '~' /* Do not process the following character */
- #define MAX_PATHLEN 131 /* Maximum length of a Path "x:...." */
- #define MAX_FILELEN 140 /* Maximum length of full file specification */
- /* ie "x:....nnnnnnnn.eee;password" */
- #define MAX_ENVLEN 255 /* Maximum length of environment entry */
- #define DEFAULT_PROMPT "$n$g" /* Default Prompt string */
- #define MAX_MEMSIZE 1000 /* Maximum Memory Size */
- #define MAX_LIMSIZE 8192 /* Max LIM Memory */
- /*
- * The following definitions are used to control console redirection,
- * pipes, echo status etc.
- */
- #define REDIR_ACTIVE 0x0001 /* Redirection Enabled */
- #define REDIR_BATCH 0x0002 /* Redirect Complete Batch File */
- #define REDIR_PIPE 0x0004 /* Redirection from PIPE command*/
- #define REDIR_FOR 0x0008 /* Redirection from FOR command */
- #define ECHO_ON 0x0001 /* Turn Echo ON unconditionally */
- #define ECHO_OFF 0x0000 /* Permanently Turn Echo OFF */
- #define XBATCH_ON 0x0001 /* Turn Echo ON unconditionally */
- #define XBATCH_OFF 0x0000 /* Permanently Turn Echo OFF */
- /*
- * The following definitions are "LONGJMP" error codes used
- * to specify the cause of the Internal Abort.
- */
- #define IA_BREAK 1 /* Control-C "BREAK" termination */
- #define IA_STACK 2 /* Stack Overflow */
- #define IA_HEAP 3 /* Heap Overflow */
- #define IA_FILENAME 4 /* FileName specification Error */
- /*.pa*/
- #define SYSDATE struct sysdate
- SYSDATE {
- WORD year; /* Current Year 1980 - 2099 */
- BYTE month; /* Month (1 - 12) */
- BYTE day; /* Day (1 - 31) */
- BYTE dow; /* Day of the Week (0 - 6) (Sun - Sat) */
- };
- #define SYSTIME struct systime
- SYSTIME {
- BYTE hour; /* Hour (0 - 23) */
- BYTE min; /* Minute (0 - 59) */
- BYTE sec; /* Second (0 - 59) */
- BYTE hsec; /* Hundredth of a second (0 - 99) */
- };
- #define DTA struct dta
- DTA { /* 128 Data Transfer Buffer in Search */
- BYTE resvd[21]; /* First - Search Next format */
- BYTE fattr;
- WORD ftime;
- WORD fdate;
- LONG fsize;
- BYTE fname[13];
- };
- /************************************************************************/
- /* */
- /* The following structure is initialized by the COMMAND.COM */
- /* kernel via a call to MS_S_COUNTRY. It is needed for */
- /* date/time conversions and directory displays... */
- /* */
- /************************************************************************/
- #define INTERNAT struct internat
- INTERNAT {
- WORD dt_fmt; /* 0=MM/DD/YY 1=DD/MM/YY 2=YY/MM/DD */
- BYTE currcy[5]; /* currency symbol + nulls */
- BYTE d1000[2]; /* thousands delimiter + null */
- BYTE ddecm[2]; /* decimal delimiter + null */
- BYTE ddate[2]; /* date delimiter + null */
- BYTE dtime[2]; /* time delimiter + null */
- BYTE cflg; /* currcy sym bits: 01 trailing, 02 = spaced */
- BYTE cdec; /* number of decimal places in currency */
- BYTE ampm; /* 0=am/pm 1=24h clock */
- BYTE internl[14];
- UWORD code;
- };
- /* Possible values of needparam in S_CMD. */
- #define PARAM_NONE 0
- #define PARAM_NEEDFILE 1
- #define PARAM_NEEDPATH 2
- #define PARAM_NEEDDEV 3
- #define PARAM_SYNTAX 4
- #define PARAM_IFCONTEXT 6
- #define S_CMD struct s_cmd
- S_CMD {
- #if defined(MWC)
- BYTE *cmnd; /* ASCII command string */
- CDECL VOID (* CDECL func)(BYTE *, BYTE *);
- UWORD needparm; /* Pointer to Null command line msg */
- WORD help_index; /* help msg index */
- #else
- #if defined(__WATCOMC__)
- BYTE *cmnd; /* ASCII command string */
- VOID CDECL (*func)(BYTE *, BYTE *);
- UWORD needparm; /* Pointer to Null command line msg */
- WORD help_index; /* help msg index */
- #else
- BYTE *cmnd; /* ASCII command string */
- VOID (* CDECL func)(); /* corresponding 'C' function */
- UWORD needparm; /* Pointer to Null command line msg */
- WORD help_index; /* help msg index */
- #endif
- #endif
- };
- #define N_CMD struct n_cmd
- N_CMD {
- #if defined(MWC)
- BYTE *string; /* ASCII command string */
- CDECL VOID (* CDECL func)(BYTE *);
- #else
- #if defined(__WATCOMC__)
- BYTE *string; /* ASCII command string */
- VOID CDECL (*func)(BYTE *);
- #else
- BYTE *string; /* ASCII command string */
- VOID (* CDECL func)(); /* corresponding 'C' function */
- #endif
- #endif
- };
- #if defined(CDOSTMP)
- #define INVALID_DRV(drv) (drv < 0 || drv > 25 || (drv == *SYSDATB(SRCHDISK)))
- #else
- #define INVALID_DRV(drv) (drv < 0 || drv > 31)
- #endif
- /* DOS file attribute bit masks */
- #define ATTR_RO 0x0001 /* file is read/only */
- #define ATTR_HID 0x0002 /* file is hidden */
- #define ATTR_SYS 0x0004 /* file system is system */
- #define ATTR_STD (ATTR_SYS | ATTR_RO)
- #define ATTR_ALL 0x0014 /* find all but labels & hidden */
- #define ATTR_LBL 0x0008 /* find labels */
- #define ATTR_DIR 0x0010 /* find directories, too */
- #define ATTR_DEV 0x0040 /* Attribute returned for Device*/
- #define STDIN 0 /* Standard Console Input Handle */
- #define STDOUT 1 /* Standard Console Output Handle */
- #define STDERR 2 /* Standard Error Output */
- #define STDAUX 3 /* Auxilary Device Handle */
- #define STDPRN 4 /* Printer Device Handle */
- #define STDCON 5 /* Internal Console Handle */
- #define OPEN_RO 0x0000 /* Open in Read Only */
- #define OPEN_WO 0x0001 /* Open in Write Only */
- #define OPEN_RW 0x0002 /* Open in Read/Write mode */
- #define OPEN_DRW 0x0010 /* Deny Read/Write Access */
- #define OPEN_DW 0x0020 /* Deny Write Access */
- #define OPEN_DR 0x0030 /* Deny Read Access */
- #define OPEN_DN 0x0040 /* Deny None */
- #define OPEN_NI 0x0080 /* Prevent Child Inheriting */
- #define OPEN_READ (OPEN_RO | OPEN_DW) /* Open Read Only */
- #define OPEN_WRITE (OPEN_WO | OPEN_DRW) /* Open Write Only */
- #define OPEN_RDWR (OPEN_RW | OPEN_DRW) /* Open Read and Write */
- /*
- * Set STACK to 1 to use dynamic string storage fuunction STACK
- * which will reserve a any number of bytes on the stack for
- * the life of the calling function. However this routine relies
- * on a certain type of function exit code and cannot be used
- * with all compilers
- */
- #define STACK defined(MSC)
- /* macros to break 'far' pointers into segment and offset components */
- #define FP_OFF(__p) ((unsigned)(__p))
- #define FP_SEG(__p) ((unsigned)((unsigned long)(void far*)(__p) >> 16))
- /* make a far pointer from segment and offset */
- #define MK_FP(__s,__o) ((void far*)(((unsigned long)(__s)<<16)|(unsigned)(__o)))