📄 fcb.h
字号:
/****************************************************************//* *//* fcb.h *//* *//* FAT FCB and extended FCB data structures & declarations *//* *//* November 23, 1991 *//* *//* Copyright (c) 1995 *//* Pasquale J. Villani *//* All Rights Reserved *//* *//* This file is part of DOS-C. *//* *//* DOS-C is free software; you can redistribute it and/or *//* modify it under the terms of the GNU General Public License *//* as published by the Free Software Foundation; either version *//* 2, or (at your option) any later version. *//* *//* DOS-C is distributed in the hope that it will be useful, but *//* WITHOUT ANY WARRANTY; without even the implied warranty of *//* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See *//* the GNU General Public License for more details. *//* *//* You should have received a copy of the GNU General Public *//* License along with DOS-C; see the file COPYING. If not, *//* write to the Free Software Foundation, 675 Mass Ave, *//* Cambridge, MA 02139, USA. *//****************************************************************/#ifdef MAIN#ifdef VERSION_STRINGSstatic BYTE *fcb_hRcsId = "$Id: fcb.h,v 1.8 2002/12/09 00:17:09 bartoldeman Exp $";#endif#endif/* fcb convience defines *//* block device info */#define FID_CHARDEV 0x80 /* 1 defines character device */ /* 0 defines block file */#define FID_NOWRITE 0x40 /* 0 file dirty (write occured) */ /* 1 file has no changes */#define FID_MASK 0x3f /* file # *//* char device info */#define FID_EOF 0x40 /* 1 = no eof detected */ /* 0 = end of file on input */#define FID_BINARY 0x20 /* 1 = binary (raw) mode device */ /* 0 = ascii (cooked) mode device */#define FID_CLOCK 0x08 /* Clock device */#define FID_NULL 0x04 /* Null device */#define FID_CONOUT 0x02 /* Console output device */#define FID_CONIN 0x01 /* Console input device */#ifndef FNAME_SIZE#define FNAME_SIZE 8 /* limit on file name */#endif#ifndef FEXT_SIZE#define FEXT_SIZE 3 /* limit on extension */#endif#ifndef FDFLT_DRIVE#define FDFLT_DRIVE 0 /* default drive */#endif#define PARSE_SEP_STOP 0x01#define PARSE_DFLT_DRIVE 0x02#define PARSE_BLNK_FNAME 0x04#define PARSE_BLNK_FEXT 0x08#define PARSE_RET_NOWILD 0#define PARSE_RET_WILD 1#define PARSE_RET_BADDRIVE 0xff#define FCB_READ 0#define FCB_WRITE 1/* File Control Block (FCB) */typedef struct { UBYTE fcb_drive; /* Drive number 0=default, 1=A, etc */ BYTE fcb_fname[FNAME_SIZE]; /* File name */ BYTE fcb_fext[FEXT_SIZE]; /* File name Extension */ UWORD fcb_cublock; /* Current block number of */ /* 128 records/block, for seq. r/w */ UWORD fcb_recsiz; /* Logical record size in bytes, */ /* default = 128 */ ULONG fcb_fsize; /* File size in bytes */ date fcb_date; /* Date file created */ time fcb_time; /* Time of last write */ /* the following are reserved by system */ BYTE fcb_sftno; /* Device ID */ BYTE fcb_attrib_hi; /* share info, dev attrib word hi */ BYTE fcb_attrib_lo; /* dev attrib word lo, open mode */ UWORD fcb_strtclst; /* file starting cluster */ UWORD fcb_dirclst; /* cluster of the dir entry */ UBYTE fcb_diroff_unused; /* offset of the dir entry */ /* end reserved */ UBYTE fcb_curec; /* Current block number of */ ULONG fcb_rndm; /* Current relative record number */} fcb;/* FAT extended fcb */typedef struct { UBYTE xfcb_flag; /* 0xff indicates Extended FCB */ BYTE xfcb_resvrd[5]; /* Reserved */ UBYTE xfcb_attrib; /* Attribute */ fcb xfcb_fcb;} xfcb;typedef struct { UBYTE renDriveID; /* drive no. */ BYTE renOldName[8]; /* Old Filename */ BYTE renOldExtent[3]; /* Old File Extension */ BYTE renReserved1[5]; BYTE renNewName[8]; /* New Filename */ BYTE renNewExtent[3]; /* New FileExtension */ BYTE renReserved2[9];} rfcb;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -