GLOBAL.C
资源名称:drdossrc.zip [点击查看]
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:6k
源码类别:
操作系统开发
开发平台:
Asm
- /*
- ; File : $Workfile: GLOBAL.C$
- ;
- ; 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$
- */
- /*
- Date Comments
- --------- ------------------------------------------------------------
- 21 Mar 88 Modify IN_PIPE and OUT_PIPE to be compatible with NOVELL 2.1
- 21 Sep 88 Change the default ECHO state to be ON.
- */
- #include "defines.h"
- #include <portab.h>
- #include <command.h> /* Command Definitions */
- /*.pa*/
- /* General Purpose Variables */
- GLOBAL BOOLEAN initflg = FALSE; /* Initial Load Flag */
- GLOBAL WORD drive = 0; /* Current default Drive */
- GLOBAL UWORD echoflg = ECHO_ON; /* Current Echo Status */
- GLOBAL BOOLEAN crlfflg = FALSE; /* No CR/LF Required before prompt */
- /* Batch File Processing Variables */
- GLOBAL UWORD batchflg = 0; /* Currently processing Batch File */
- /* FOR Sub-Command Variables */
- GLOBAL BOOLEAN for_flag = NO; /* FOR Sub-command Active */
- /* I/O Redirection Control */
- GLOBAL WORD in_flag = NULL;
- GLOBAL WORD out_flag = NULL;
- GLOBAL UWORD in_handle = NULL;
- GLOBAL UWORD out_handle = NULL;
- /* Pipe Control Data */
- GLOBAL BOOLEAN pipe_out = NO; /* Activate Pipe output */
- GLOBAL BOOLEAN pipe_in = NO; /* Activate Pipe Input */
- GLOBAL BOOLEAN preserve_pipe = NO;
- /*
- * The following two structures are patched by NOVELL Version 2.1
- * to force the creation of the PIPE files in the current sub-directory
- * rather than the root. The '/' is patched to a '.' by the NET3.COM
- * program.
- */
- GLOBAL BYTE out_pipe[64] = "_:/ _______.___"; /* Output Pipe Name "x:filename.ext" */
- GLOBAL BYTE *old_pipe; /* old pipe file name */
- GLOBAL BYTE pathchar[] = "\"; /* The current path character. This */
- /* can be accessed as a byte using */
- /* "*pathchar" or as a string using */
- /* "pathchar". */
- #if defined(PASSWORD)
- GLOBAL BYTE pwdchar[] = ";"; /* The Password delimiter. Which can*/
- /* be accessed in the same way as */
- /* pathchar. */
- #endif
- GLOBAL BYTE switchar[] = "/"; /* Switch Character */
- GLOBAL BYTE dotdot[] = "..";
- GLOBAL BYTE d_slash_stardotstar[] = "x:\*.*";
- GLOBAL BOOLEAN back_flag = FALSE; /* Execute a BackGround Task*/
- GLOBAL BOOLEAN execed;
- GLOBAL WORD page_len = 24; /* Screen Length */
- GLOBAL WORD page_wid = 80; /* Screen Width */
- GLOBAL BOOLEAN break_flag;
- GLOBAL BOOLEAN err_flag;
- GLOBAL UWORD err_ret;
- GLOBAL WORD ddrive;
- GLOBAL BYTE FAR *bufaddr; /* External Copy Buffer Address */
- GLOBAL UWORD bufsize; /* External Copy Buffer Size */
- GLOBAL INTERNAT country; /* country data structure */
- #if defined(DOSPLUS)
- GLOBAL BYTE *ftypes[] = { "com", "exe", "bat", NULL};
- #else
- GLOBAL BYTE *ftypes[] = { "cmd", "com", "exe", "bat", NULL};
- #endif
- /* This pointer is initialized by the Startup routine and */
- /* would be defined there if I could persuade the compiler */
- /* to reference it correctly. */
- #if !defined(DOSPLUS)
- #include <pd.h> /* PD Structure Declaration */
- GLOBAL PD FAR * CDECL pd = (PD FAR *) 1234L; /* FAR pointer to our PD */
- GLOBAL WORD CDECL sysdat_seg = 0; /* Segment address of SYSDAT */
- #endif
- GLOBAL BOOLEAN c_option = FALSE;
- GLOBAL BOOLEAN k_option = FALSE;
- GLOBAL BOOLEAN n_option = FALSE;
- GLOBAL BOOLEAN allow_pexec = FALSE;
- GLOBAL BYTE FAR *gp_far_buff = 0L;
- GLOBAL BYTE FAR *show_file_buf = 0L;
- GLOBAL UWORD FAR *parent_psp;
- GLOBAL UWORD save_parent;
- #define FCONTROL struct fcc
- MLOCAL FCONTROL {
- BOOLEAN sflg; /* FOR File Search Flag */
- DTA search; /* FOR Search structure */
- BYTE *files; /* FOR File list */
- BYTE *cmd; /* FOR Command Line */
- BYTE forvar; /* FOR variable char */
- };
- #define BCONTROL struct bcc
- GLOBAL BCONTROL {
- BCONTROL FAR *bcontrol; /* Previous Batch Control Structure */
- BOOLEAN eof; /* End of File Flag */
- LONG offset; /* Offset in BATCH file */
- LONG ret_offset[4]; /* return offset from gosub */
- BYTE *batcmd; /* Batch File Input parameters */
- UWORD batshift; /* Shift Offset */
- BYTE batfile[MAX_PATHLEN]; /* Batch File Name */
- UWORD stream; /* Stream for this Batch File */
- FCONTROL *fcontrol; /* Pointer to previous FOR command */
- BYTE *heap_start; /* Heap pointer before extra bytes */
- WORD heap_size; /* are added to shift to segment */
- BYTE save_area[1]; /* boundary. - EJH */
- } FAR *batch, FAR *batch_save; /* Master Batch Control Stucture */
- WORD global_link;
- WORD global_strat;
- WORD global_in_hiload = 0;
- WORD hidden_umb[10];