mirror of
https://github.com/SEPPDROID/DR-DOS-OpenDOS.git
synced 2025-10-22 16:04:20 +00:00
156 lines
5.1 KiB
C
156 lines
5.1 KiB
C
/*
|
|
; 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
|
|
*/
|
|
|
|
EXTERN BOOLEAN initflg; /* Initial Load Flag */
|
|
EXTERN WORD drive; /* Current default Drive */
|
|
EXTERN UWORD echoflg; /* Current Echo Status */
|
|
EXTERN BOOLEAN crlfflg; /* CR/LF Required before prompt */
|
|
|
|
/* Batch File Processing Variables */
|
|
EXTERN UWORD batchflg; /* Currently processing Batch File */
|
|
|
|
/* FOR Sub-Command Variables */
|
|
EXTERN BOOLEAN for_flag; /* FOR Sub-command Active */
|
|
|
|
/* I/O Redirection Control */
|
|
EXTERN WORD in_flag;
|
|
EXTERN WORD out_flag;
|
|
EXTERN WORD in_handle;
|
|
EXTERN WORD out_handle;
|
|
|
|
/* Pipe Control Data */
|
|
EXTERN BOOLEAN pipe_out; /* Activate Pipe output */
|
|
EXTERN BOOLEAN pipe_in; /* Activate Pipe Input */
|
|
EXTERN BOOLEAN preserve_pipe;
|
|
EXTERN BYTE out_pipe[]; /* Output Pipe Name "x:\filename.ext" */
|
|
EXTERN BYTE *old_pipe;
|
|
|
|
EXTERN BYTE pathchar[]; /* The current path character. This */
|
|
/* can be accessed as a byte using */
|
|
/* "*pathchar" or as a string using */
|
|
/* "pathchar". */
|
|
#if defined(PASSWORD)
|
|
EXTERN BYTE pwdchar[]; /* The Password delimiter. Which can*/
|
|
/* be accessed in the same way as */
|
|
/* pathchar. */
|
|
#endif
|
|
|
|
EXTERN BYTE switchar[]; /* Switch Character */
|
|
|
|
EXTERN BYTE dotdot[];
|
|
EXTERN BYTE d_slash_stardotstar[];
|
|
|
|
EXTERN BOOLEAN back_flag; /* Execute a BackGround Task*/
|
|
EXTERN BOOLEAN execed; /* were we execed from DOS? */
|
|
EXTERN WORD page_len; /* Screen Length */
|
|
EXTERN WORD page_wid; /* Screen Width */
|
|
|
|
EXTERN BOOLEAN break_flag;
|
|
EXTERN BOOLEAN err_flag;
|
|
EXTERN UWORD err_ret;
|
|
|
|
EXTERN WORD ddrive;
|
|
EXTERN BYTE FAR *bufaddr; /* External Copy Buffer Address */
|
|
EXTERN UWORD bufsize; /* External Copy Buffer Size */
|
|
|
|
EXTERN INTERNAT country; /* country data structure */
|
|
#define JAPAN 81 /* country.code for Japan */
|
|
|
|
EXTERN BYTE *ftypes[];
|
|
|
|
EXTERN BOOLEAN c_option;
|
|
EXTERN BOOLEAN k_option;
|
|
EXTERN BOOLEAN n_option;
|
|
EXTERN BOOLEAN allow_pexec;
|
|
|
|
EXTERN BYTE FAR *gp_far_buff;
|
|
EXTERN BYTE FAR *show_file_buf;
|
|
EXTERN UWORD FAR *parent_psp;
|
|
EXTERN UWORD save_parent;
|
|
|
|
#define FCONTROL struct fcc
|
|
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
|
|
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 */
|
|
};
|
|
EXTERN BCONTROL FAR *batch;
|
|
EXTERN BCONTROL FAR *batch_save;
|
|
|
|
|
|
EXTERN WORD global_link;
|
|
EXTERN WORD global_strat;
|
|
EXTERN WORD global_in_hiload;
|
|
EXTERN WORD hidden_umb[10];
|
|
|
|
/*
|
|
* File type index's returned by the Concurrent DOS P_PATH function
|
|
* and emulated in the findfile function. DOSPLUS does not search
|
|
* for the ".CMD" and therefore uses a modified index.
|
|
*
|
|
*/
|
|
#if defined(DOSPLUS) || defined(NETWARE)
|
|
#define COM_FILETYPE 0 /* MicroSoft .COM */
|
|
#define EXE_FILETYPE 1 /* MicroSoft .EXE */
|
|
#define BAT_FILETYPE 2 /* Batch File */
|
|
#else
|
|
#define CMD_FILETYPE 0 /* Digital Reseach .CMD */
|
|
#define COM_FILETYPE 1 /* MicroSoft .COM */
|
|
#define EXE_FILETYPE 2 /* MicroSoft .EXE */
|
|
#define BAT_FILETYPE 3 /* Batch File */
|
|
#endif
|
|
|
|
#define ERROR_EXIT 0x0200 /* Exit because of a Critical Error */
|
|
#define BREAK_EXIT 0x0100 /* Exit because of a Control-Break */
|