GLOBAL.H
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:5k
源码类别:

操作系统开发

开发平台:

Asm

  1. /*
  2. ;    File              : $Workfile$
  3. ;
  4. ;    Description       :
  5. ;
  6. ;    Original Author   : DIGITAL RESEARCH
  7. ;
  8. ;    Last Edited By    : $CALDERA$
  9. ;
  10. ;-----------------------------------------------------------------------;
  11. ;    Copyright Work of Caldera, Inc. All Rights Reserved.
  12. ;      
  13. ;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
  14. ;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
  15. ;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
  16. ;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
  17. ;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
  18. ;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
  19. ;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
  20. ;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
  21. ;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
  22. ;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
  23. ;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
  24. ;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
  25. ;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
  26. ;    CIVIL LIABILITY.
  27. ;-----------------------------------------------------------------------;
  28. ;
  29. ;    *** Current Edit History ***
  30. ;    *** End of Current Edit History ***
  31. ;
  32. ;    $Log$
  33. ;
  34. ;    ENDLOG
  35. */
  36. EXTERN BOOLEAN initflg; /* Initial Load Flag      */
  37. EXTERN WORD drive; /* Current default Drive      */
  38. EXTERN UWORD echoflg; /* Current Echo Status      */
  39. EXTERN BOOLEAN crlfflg; /* CR/LF Required before prompt      */
  40. /* Batch File Processing Variables */
  41. EXTERN UWORD batchflg; /* Currently processing Batch File   */
  42. /* FOR Sub-Command Variables */
  43. EXTERN BOOLEAN for_flag; /* FOR Sub-command Active */
  44. /* I/O Redirection Control  */
  45. EXTERN WORD in_flag;
  46. EXTERN WORD out_flag;
  47. EXTERN WORD in_handle;
  48. EXTERN WORD out_handle;
  49. /* Pipe Control Data */
  50. EXTERN BOOLEAN pipe_out; /* Activate Pipe output         */
  51. EXTERN BOOLEAN pipe_in; /* Activate Pipe Input        */
  52. EXTERN BOOLEAN  preserve_pipe;
  53. EXTERN BYTE out_pipe[]; /* Output Pipe Name "x:filename.ext"  */
  54. EXTERN BYTE *old_pipe;
  55. EXTERN BYTE pathchar[]; /* The current path character. This */
  56. /* can be accessed as a byte using  */
  57. /* "*pathchar" or as a string using */
  58. /* "pathchar".     */
  59. #if defined(PASSWORD)
  60. EXTERN BYTE pwdchar[]; /* The Password delimiter. Which can*/
  61. /* be accessed in the same way as   */
  62. /* pathchar.     */
  63. #endif
  64. EXTERN BYTE switchar[]; /* Switch Character     */
  65. EXTERN BYTE dotdot[];
  66. EXTERN BYTE d_slash_stardotstar[];
  67. EXTERN BOOLEAN back_flag; /* Execute a BackGround Task*/
  68. EXTERN BOOLEAN execed;  /* were we execed from DOS? */
  69. EXTERN WORD page_len; /* Screen Length     */
  70. EXTERN WORD page_wid; /* Screen Width      */
  71. EXTERN BOOLEAN break_flag;
  72. EXTERN BOOLEAN err_flag;
  73. EXTERN UWORD err_ret;
  74. EXTERN WORD ddrive;
  75. EXTERN BYTE FAR *bufaddr; /* External Copy Buffer Address */
  76. EXTERN UWORD bufsize;  /* External Copy Buffer Size */
  77. EXTERN INTERNAT country; /* country data structure */
  78. #define JAPAN 81 /* country.code for Japan       */
  79. EXTERN BYTE *ftypes[];
  80. EXTERN BOOLEAN c_option;
  81. EXTERN BOOLEAN k_option;
  82. EXTERN BOOLEAN n_option;
  83. EXTERN BOOLEAN allow_pexec;
  84. EXTERN BYTE FAR *gp_far_buff;
  85. EXTERN BYTE FAR *show_file_buf;
  86. EXTERN UWORD FAR *parent_psp;
  87. EXTERN UWORD save_parent;
  88. #define FCONTROL struct fcc
  89. FCONTROL {
  90. BOOLEAN  sflg; /* FOR File Search Flag  */
  91. DTA  search; /* FOR Search structure  */
  92. BYTE  *files; /* FOR File list */
  93. BYTE  *cmd; /* FOR Command Line */
  94. BYTE  forvar; /* FOR variable char */
  95. };
  96. #define BCONTROL struct bcc
  97. BCONTROL {
  98. BCONTROL FAR *bcontrol; /* Previous Batch Control Structure  */
  99. BOOLEAN  eof; /* End of File Flag      */
  100. LONG  offset; /* Offset in BATCH file       */
  101. LONG  ret_offset[4]; /* return offset from gosub          */
  102. BYTE  *batcmd; /* Batch File Input parameters      */
  103. UWORD  batshift; /* Shift Offset       */
  104. BYTE  batfile[MAX_PATHLEN]; /* Batch File Name      */
  105. UWORD  stream; /* Stream for this Batch File      */
  106. FCONTROL *fcontrol; /* Pointer to previous FOR command   */
  107. BYTE  *heap_start; /* Heap pointer before extra bytes   */
  108. WORD  heap_size; /* are added to shift to segment     */
  109. BYTE     save_area[1]; /* boundary. - EJH      */
  110. }; 
  111. EXTERN BCONTROL FAR *batch;
  112. EXTERN BCONTROL FAR *batch_save;
  113. EXTERN WORD global_link;
  114. EXTERN WORD global_strat;
  115. EXTERN WORD global_in_hiload;
  116. EXTERN WORD hidden_umb[10];
  117. /*
  118.  * File type index's returned by the Concurrent DOS P_PATH function
  119.  * and emulated in the findfile function. DOSPLUS does not search
  120.  * for the ".CMD" and therefore uses a modified index.
  121.  *
  122.  */ 
  123. #if defined(DOSPLUS) || defined(NETWARE) 
  124. #define COM_FILETYPE 0 /* MicroSoft .COM */
  125. #define EXE_FILETYPE 1 /* MicroSoft .EXE */
  126. #define BAT_FILETYPE 2 /* Batch File */
  127. #else
  128. #define CMD_FILETYPE 0 /* Digital Reseach .CMD */
  129. #define COM_FILETYPE 1 /* MicroSoft .COM */
  130. #define EXE_FILETYPE 2 /* MicroSoft .EXE */
  131. #define BAT_FILETYPE 3 /* Batch File */
  132. #endif
  133. #define ERROR_EXIT 0x0200 /* Exit because of a Critical Error */
  134. #define BREAK_EXIT 0x0100 /* Exit because of a Control-Break  */