bsedos.fi
来自「开放源码的编译器open watcom 1.6.0版的源代码」· FI 代码 · 共 1,691 行 · 第 1/4 页
FI
1,691 行
c$noreference
c$ifdef INCL_DOS
c$define INCL_DOSPROCESS
c$define INCL_DOSFILEMGR
c$define INCL_DOSMEMMGR
c$define INCL_DOSSEMAPHORES
c$define INCL_DOSDATETIME
c$define INCL_DOSMODULEMGR
c$define INCL_DOSRESOURCES
c$define INCL_DOSNLS
c$define INCL_DOSEXCEPTIONS
c$define INCL_DOSMISC
c$define INCL_DOSMONITORS
c$define INCL_DOSQUEUES
c$define INCL_DOSSESMGR
c$define INCL_DOSDEVICES
c$define INCL_DOSNMPIPES
c$define INCL_DOSPROFILE
c$define INCL_DOSMVDM
c$endif
c$ifdef INCL_ERRORS
c$define INCL_DOSERRORS
c$endif
c$ifdef INCL_DOSPROCESS
external DosBeep
integer*4 DosBeep
external DosExit
integer EXIT_THREAD
parameter (EXIT_THREAD = 0)
integer EXIT_PROCESS
parameter (EXIT_PROCESS = 1)
c$include bsetib.fi
external DosCreateThread
integer*4 DosCreateThread
external DosResumeThread
integer*4 DosResumeThread
external DosSuspendThread
integer*4 DosSuspendThread
external DosGetInfoBlocks
integer*4 DosGetInfoBlocks
external DosKillThread
integer*4 DosKillThread
integer DCWA_PROCESS
parameter (DCWA_PROCESS = 0)
integer DCWA_PROCESSTREE
parameter (DCWA_PROCESSTREE = 1)
integer DCWW_WAIT
parameter (DCWW_WAIT = 0)
integer DCWW_NOWAIT
parameter (DCWW_NOWAIT = 1)
structure /RESULTCODES/
integer*4 codeTerminate
integer*4 codeResult
end structure
external DosWaitChild
integer*4 DosWaitChild
external DosWaitThread
integer*4 DosWaitThread
external DosSleep
integer*4 DosSleep
external DosDebug
integer*4 DosDebug
integer TC_EXIT
parameter (TC_EXIT = 0)
integer TC_HARDERROR
parameter (TC_HARDERROR = 1)
integer TC_TRAP
parameter (TC_TRAP = 2)
integer TC_KILLPROCESS
parameter (TC_KILLPROCESS = 3)
integer TC_EXCEPTION
parameter (TC_EXCEPTION = 4)
external DosEnterCritSec
integer*4 DosEnterCritSec
external DosExitCritSec
integer*4 DosExitCritSec
external DosExitList
integer*4 DosExitList
integer EXLST_ADD
parameter (EXLST_ADD = 1)
integer EXLST_REMOVE
parameter (EXLST_REMOVE = 2)
integer EXLST_EXIT
parameter (EXLST_EXIT = 3)
external DosExecPgm
integer*4 DosExecPgm
integer EXEC_SYNC
parameter (EXEC_SYNC = 0)
integer EXEC_ASYNC
parameter (EXEC_ASYNC = 1)
integer EXEC_ASYNCRESULT
parameter (EXEC_ASYNCRESULT = 2)
integer EXEC_TRACE
parameter (EXEC_TRACE = 3)
integer EXEC_BACKGROUND
parameter (EXEC_BACKGROUND = 4)
integer EXEC_LOAD
parameter (EXEC_LOAD = 5)
integer EXEC_ASYNCRESULTDB
parameter (EXEC_ASYNCRESULTDB = 6)
external DosSetPriority
integer*4 DosSetPriority
integer PRTYS_PROCESS
parameter (PRTYS_PROCESS = 0)
integer PRTYS_PROCESSTREE
parameter (PRTYS_PROCESSTREE = 1)
integer PRTYS_THREAD
parameter (PRTYS_THREAD = 2)
integer PRTYC_NOCHANGE
parameter (PRTYC_NOCHANGE = 0)
integer PRTYC_IDLETIME
parameter (PRTYC_IDLETIME = 1)
integer PRTYC_REGULAR
parameter (PRTYC_REGULAR = 2)
integer PRTYC_TIMECRITICAL
parameter (PRTYC_TIMECRITICAL = 3)
integer PRTYC_FOREGROUNDSERVER
parameter (PRTYC_FOREGROUNDSERVER = 4)
integer PRTYD_MINIMUM
parameter (PRTYD_MINIMUM = -31)
integer PRTYD_MAXIMUM
parameter (PRTYD_MAXIMUM = 31)
external DosKillProcess
integer*4 DosKillProcess
integer DKP_PROCESSTREE
parameter (DKP_PROCESSTREE = 0)
integer DKP_PROCESS
parameter (DKP_PROCESS = 1)
c$endif
integer CCHMAXPATH
parameter (CCHMAXPATH = 260)
integer CCHMAXPATHCOMP
parameter (CCHMAXPATHCOMP = 256)
c$ifdef INCL_DOSFILEMGR
integer FILE_BEGIN
parameter (FILE_BEGIN = '00000000'x)
integer FILE_CURRENT
parameter (FILE_CURRENT = '00000001'x)
integer FILE_END
parameter (FILE_END = '00000002'x)
integer HDIR_SYSTEM
parameter (HDIR_SYSTEM = 1)
integer HDIR_CREATE
parameter (HDIR_CREATE = -1)
integer DCPY_EXISTING
parameter (DCPY_EXISTING = '00000001'x)
integer DCPY_APPEND
parameter (DCPY_APPEND = '00000002'x)
integer DCPY_FAILEAS
parameter (DCPY_FAILEAS = '00000004'x)
integer FILE_NORMAL
parameter (FILE_NORMAL = '00000000'x)
integer FILE_READONLY
parameter (FILE_READONLY = '00000001'x)
integer FILE_HIDDEN
parameter (FILE_HIDDEN = '00000002'x)
integer FILE_SYSTEM
parameter (FILE_SYSTEM = '00000004'x)
integer FILE_DIRECTORY
parameter (FILE_DIRECTORY = '00000010'x)
integer FILE_ARCHIVED
parameter (FILE_ARCHIVED = '00000020'x)
integer FILE_IGNORE
parameter (FILE_IGNORE = '00010000'x)
integer MUST_HAVE_READONLY
parameter (MUST_HAVE_READONLY =
+ (FILE_READONLY * 2**8) .or. FILE_READONLY)
integer MUST_HAVE_HIDDEN
parameter (MUST_HAVE_HIDDEN =
+ (FILE_HIDDEN * 2**8) .or. FILE_HIDDEN)
integer MUST_HAVE_SYSTEM
parameter (MUST_HAVE_SYSTEM =
+ (FILE_SYSTEM * 2**8) .or. FILE_SYSTEM)
integer MUST_HAVE_DIRECTORY
parameter (MUST_HAVE_DIRECTORY =
+ (FILE_DIRECTORY * 2**8) .or. FILE_DIRECTORY)
integer MUST_HAVE_ARCHIVED
parameter (MUST_HAVE_ARCHIVED =
+ (FILE_ARCHIVED * 2**8) .or. FILE_ARCHIVED)
integer FILE_EXISTED
parameter (FILE_EXISTED = '00000001'x)
integer FILE_CREATED
parameter (FILE_CREATED = '00000002'x)
integer FILE_TRUNCATED
parameter (FILE_TRUNCATED = '00000003'x)
integer FILE_OPEN
parameter (FILE_OPEN = '00000001'x)
integer FILE_TRUNCATE
parameter (FILE_TRUNCATE = '00000002'x)
integer FILE_CREATE
parameter (FILE_CREATE = '00000010'x)
integer OPEN_ACTION_FAIL_IF_EXISTS
parameter (OPEN_ACTION_FAIL_IF_EXISTS = '00000000'x)
integer OPEN_ACTION_OPEN_IF_EXISTS
parameter (OPEN_ACTION_OPEN_IF_EXISTS = '00000001'x)
integer OPEN_ACTION_REPLACE_IF_EXISTS
parameter (OPEN_ACTION_REPLACE_IF_EXISTS = '00000002'x)
integer OPEN_ACTION_FAIL_IF_NEW
parameter (OPEN_ACTION_FAIL_IF_NEW = '00000000'x)
integer OPEN_ACTION_CREATE_IF_NEW
parameter (OPEN_ACTION_CREATE_IF_NEW = '00000010'x)
integer OPEN_ACCESS_READONLY
parameter (OPEN_ACCESS_READONLY = '00000000'x)
integer OPEN_ACCESS_WRITEONLY
parameter (OPEN_ACCESS_WRITEONLY = '00000001'x)
integer OPEN_ACCESS_READWRITE
parameter (OPEN_ACCESS_READWRITE = '00000002'x)
integer OPEN_SHARE_DENYREADWRITE
parameter (OPEN_SHARE_DENYREADWRITE = '00000010'x)
integer OPEN_SHARE_DENYWRITE
parameter (OPEN_SHARE_DENYWRITE = '00000020'x)
integer OPEN_SHARE_DENYREAD
parameter (OPEN_SHARE_DENYREAD = '00000030'x)
integer OPEN_SHARE_DENYNONE
parameter (OPEN_SHARE_DENYNONE = '00000040'x)
integer OPEN_FLAGS_NOINHERIT
parameter (OPEN_FLAGS_NOINHERIT = '00000080'x)
integer OPEN_FLAGS_NO_LOCALITY
parameter (OPEN_FLAGS_NO_LOCALITY = '00000000'x)
integer OPEN_FLAGS_SEQUENTIAL
parameter (OPEN_FLAGS_SEQUENTIAL = '00000100'x)
integer OPEN_FLAGS_RANDOM
parameter (OPEN_FLAGS_RANDOM = '00000200'x)
integer OPEN_FLAGS_RANDOMSEQUENTIAL
parameter (OPEN_FLAGS_RANDOMSEQUENTIAL = '00000300'x)
integer OPEN_FLAGS_NO_CACHE
parameter (OPEN_FLAGS_NO_CACHE = '00001000'x)
integer OPEN_FLAGS_FAIL_ON_ERROR
parameter (OPEN_FLAGS_FAIL_ON_ERROR = '00002000'x)
integer OPEN_FLAGS_WRITE_THROUGH
parameter (OPEN_FLAGS_WRITE_THROUGH = '00004000'x)
integer OPEN_FLAGS_DASD
parameter (OPEN_FLAGS_DASD = '00008000'x)
integer OPEN_FLAGS_NONSPOOLED
parameter (OPEN_FLAGS_NONSPOOLED = '00040000'x)
integer SEARCH_PATH
parameter (SEARCH_PATH = '00000000'x)
integer SEARCH_CUR_DIRECTORY
parameter (SEARCH_CUR_DIRECTORY = '00000001'x)
integer SEARCH_ENVIRONMENT
parameter (SEARCH_ENVIRONMENT = '00000002'x)
integer SEARCH_IGNORENETERRS
parameter (SEARCH_IGNORENETERRS = '00000004'x)
integer FIL_STANDARD
parameter (FIL_STANDARD = 1)
integer FIL_QUERYEASIZE
parameter (FIL_QUERYEASIZE = 2)
integer FIL_QUERYEASFROMLIST
parameter (FIL_QUERYEASFROMLIST = 3)
integer FIL_QUERYFULLNAME
parameter (FIL_QUERYFULLNAME = 5)
integer FS_ATTACH
parameter (FS_ATTACH = 0)
integer FS_DETACH
parameter (FS_DETACH = 1)
integer FS_SPOOLATTACH
parameter (FS_SPOOLATTACH = 2)
integer FS_SPOOLDETACH
parameter (FS_SPOOLDETACH = 3)
integer FSCTL_HANDLE
parameter (FSCTL_HANDLE = 1)
integer FSCTL_PATHNAME
parameter (FSCTL_PATHNAME = 2)
integer FSCTL_FSDNAME
parameter (FSCTL_FSDNAME = 3)
integer FSCTL_ERROR_INFO
parameter (FSCTL_ERROR_INFO = 1)
integer FSCTL_MAX_EASIZE
parameter (FSCTL_MAX_EASIZE = 2)
structure /EASIZEBUF/
integer*2 cbMaxEASize
integer*4 cbMaxEAListSize
end structure
integer FSAIL_QUERYNAME
parameter (FSAIL_QUERYNAME = 1)
integer FSAIL_DEVNUMBER
parameter (FSAIL_DEVNUMBER = 2)
integer FSAIL_DRVNUMBER
parameter (FSAIL_DRVNUMBER = 3)
integer FSAT_CHARDEV
parameter (FSAT_CHARDEV = 1)
integer FSAT_PSEUDODEV
parameter (FSAT_PSEUDODEV = 2)
integer FSAT_LOCALDRV
parameter (FSAT_LOCALDRV = 3)
integer FSAT_REMOTEDRV
parameter (FSAT_REMOTEDRV = 4)
structure /FSQBUFFER/
integer*2 iType
integer*2 cbName
integer*1 szName(1)
integer*2 cbFSDName
integer*1 szFSDName(1)
integer*2 cbFSAData
integer*1 rgFSAData(1)
end structure
structure /FSQBUFFER2/
integer*2 iType
integer*2 cbName
integer*2 cbFSDName
integer*2 cbFSAData
integer*1 szName(1)
integer*1 szFSDName(1)
integer*1 rgFSAData(1)
end structure
structure /SPOOLATTACH/
integer*2 hNmPipe
integer*4 ulKey
end structure
integer FSIL_ALLOC
parameter (FSIL_ALLOC = 1)
integer FSIL_VOLSER
parameter (FSIL_VOLSER = 2)
integer FHT_DISKFILE
parameter (FHT_DISKFILE = '00000000'x)
integer FHT_CHRDEV
parameter (FHT_CHRDEV = '00000001'x)
integer FHT_PIPE
parameter (FHT_PIPE = '00000002'x)
integer FHB_DSKREMOTE
parameter (FHB_DSKREMOTE = '00008000'x)
integer FHB_CHRDEVREMOTE
parameter (FHB_CHRDEVREMOTE = '00008000'x)
integer FHB_PIPEREMOTE
parameter (FHB_PIPEREMOTE = '00008000'x)
! To get the seconds: 2 * IAND( ftime, '001f'x )
! To get the minutes: ISHFT( IAND( ftime, '07e0'x ), -5 )
! To get the hours: ISHFT( IAND( ftime, 'f800'x ), -11 )
structure /FTIME/
integer*2 ftime
end structure
! To get the day: IAND( fdate, '001f'x )
! To get the month: ISHFT( IAND( ftime, '01e0'x ), -5 )
! To get the year: ISHFT( IAND( ftime, 'fe00'x ), -9 )
structure /FDATE/
integer*2 fdate
end structure
structure /VOLUMELABEL/
integer*1 cch
integer*1 szVolLabel(12)
end structure
structure /FSINFO/
record /FDATE/ fdateCreation
record /FTIME/ ftimeCreation
record /VOLUMELABEL/ vol
end structure
integer HANDTYPE_FILE
parameter (HANDTYPE_FILE = '00000000'x)
integer HANDTYPE_DEVICE
parameter (HANDTYPE_DEVICE = '00000001'x)
integer HANDTYPE_PIPE
parameter (HANDTYPE_PIPE = '00000002'x)
integer HANDTYPE_NETWORK
parameter (HANDTYPE_NETWORK = '00008000'x)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?