⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 proto.h

📁 GNU FreeDOS兼容MS DOS很好的东东.
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************//*                                                              *//*                          proto.h                             *//*                                                              *//*                   Global Function Prototypes                 *//*                                                              *//*                   Copyright (c) 1995, 1996                   *//*                      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 *Proto_hRcsId =    "$Id: proto.h,v 1.78 2005/03/06 16:58:33 perditionc Exp $";#endif#endif/* blockio.c */struct buffer FAR *getblk(ULONG blkno, COUNT dsk, BOOL overwrite);#define getblock(blkno, dsk) getblk(blkno, dsk, FALSE);#define getblockOver(blkno, dsk) getblk(blkno, dsk, TRUE);VOID setinvld(REG COUNT dsk);BOOL flush_buffers(REG COUNT dsk);BOOL flush(void);BOOL fill(REG struct buffer FAR * bp, ULONG blkno, COUNT dsk);BOOL DeleteBlockInBufferCache(ULONG blknolow, ULONG blknohigh, COUNT dsk, int mode);/* *** Changed on 9/4/00  BER */UWORD dskxfer(COUNT dsk, ULONG blkno, VOID FAR * buf, UWORD numblocks,              COUNT mode);/* *** End of change */void AllocateHMASpace (size_t lowbuffer, size_t highbuffer);/* break.c */unsigned char ctrl_break_pressed(void);unsigned char check_handle_break(struct dhdr FAR **pdev);void handle_break(struct dhdr FAR **pdev, int sft_out);#ifdef __WATCOMC__#pragma aux handle_break aborts;#endif/* chario.c */struct dhdr FAR *sft_to_dev(sft FAR *sft);long BinaryCharIO(struct dhdr FAR **pdev, size_t n, void FAR * bp,                  unsigned command);int echo_char(int c, int sft_idx);int ndread(struct dhdr FAR **pdev);int StdinBusy(void);void con_flush(struct dhdr FAR **pdev);unsigned char read_char(int sft_in, int sft_out, BOOL check_break);unsigned char read_char_stdin(BOOL check_break);long cooked_read(struct dhdr FAR **pdev, size_t n, char FAR *bp);void read_line(int sft_in, int sft_out, keyboard FAR * kp);size_t read_line_handle(int sft_idx, size_t n, char FAR * bp);void write_char(int c, int sft_idx);void write_char_stdout(int c);void update_scr_pos(unsigned char c, unsigned char count);long cooked_write(struct dhdr FAR **pdev, size_t n, char FAR *bp);sft FAR *get_sft(UCOUNT);/* dosfns.c */const char FAR *get_root(const char FAR *);BOOL check_break(void);UCOUNT GenericReadSft(sft far * sftp, UCOUNT n, void FAR * bp,                      COUNT * err, BOOL force_binary);COUNT SftSeek(int sft_idx, LONG new_pos, COUNT mode);/*COUNT DosRead(COUNT hndl, UCOUNT n, BYTE FAR * bp, COUNT FAR * err); */void BinarySftIO(int sft_idx, void *bp, int mode);#define BinaryIO(hndl, bp, mode) BinarySftIO(get_sft_idx(hndl), bp, mode)long DosRWSft(int sft_idx, size_t n, void FAR * bp, int mode);#define DosRead(hndl, n, bp) DosRWSft(get_sft_idx(hndl), n, bp, XFR_READ)#define DosWrite(hndl, n, bp) DosRWSft(get_sft_idx(hndl), n, bp, XFR_WRITE)ULONG DosSeek(unsigned hndl, LONG new_pos, COUNT mode);long DosOpen(char FAR * fname, unsigned flags, unsigned attrib);COUNT CloneHandle(unsigned hndl);long DosDup(unsigned Handle);COUNT DosForceDup(unsigned OldHandle, unsigned NewHandle);long DosOpenSft(char FAR * fname, unsigned flags, unsigned attrib);COUNT DosClose(COUNT hndl);COUNT DosCloseSft(int sft_idx, BOOL commitonly);#define DosCommit(hndl) DosCloseSft(get_sft_idx(hndl), TRUE)UWORD DosGetFree(UBYTE drive, UWORD * navc, UWORD * bps, UWORD * nc);COUNT DosGetCuDir(UBYTE drive, BYTE FAR * s);COUNT DosChangeDir(BYTE FAR * s);COUNT DosFindFirst(UCOUNT attr, BYTE FAR * name);COUNT DosFindNext(void);COUNT DosGetFtime(COUNT hndl, date * dp, time * tp);COUNT DosSetFtimeSft(int sft_idx, date dp, time tp);#define DosSetFtime(hndl, dp, tp) DosSetFtimeSft(get_sft_idx(hndl), (dp), (tp))COUNT DosGetFattr(BYTE FAR * name);COUNT DosSetFattr(BYTE FAR * name, UWORD attrp);UBYTE DosSelectDrv(UBYTE drv);COUNT DosDelete(BYTE FAR * path, int attrib);COUNT DosRename(BYTE FAR * path1, BYTE FAR * path2);COUNT DosRenameTrue(BYTE * path1, BYTE * path2, int attrib);COUNT DosMkRmdir(const char FAR * dir, int action);struct dhdr FAR *IsDevice(const char FAR * FileName);BOOL IsShareInstalled(void);COUNT DosLockUnlock(COUNT hndl, LONG pos, LONG len, COUNT unlock);int idx_to_sft_(int SftIndex);sft FAR *idx_to_sft(int SftIndex);int get_sft_idx(UCOUNT hndl);struct cds FAR *get_cds(unsigned dsk);COUNT DosTruename(const char FAR * src, char FAR * dest);/*dosidle.asm */VOID ASMCFUNC DosIdle_int(void);#ifdef __WATCOMC__#pragma aux (cdecl) DosIdle_int modify exact []#endif/* dosnames.c */int ParseDosName(const char *, char *, BOOL);/* error.c */VOID dump(void);VOID panic(BYTE * s);VOID fatal(BYTE * err_msg);/* fatdir.c */VOID dir_init_fnode(f_node_ptr fnp, CLUSTER dirstart);f_node_ptr dir_open(const char *dirname);COUNT dir_read(REG f_node_ptr fnp);BOOL dir_write(REG f_node_ptr fnp);VOID dir_close(REG f_node_ptr fnp);COUNT dos_findfirst(UCOUNT attr, BYTE * name);COUNT dos_findnext(void);void ConvertName83ToNameSZ(BYTE FAR * destSZ, BYTE FAR * srcFCBName);int FileName83Length(BYTE * filename83);/* fatfs.c */struct dpb FAR *get_dpb(COUNT dsk);ULONG clus2phys(CLUSTER cl_no, struct dpb FAR * dpbp);long dos_open(char * path, unsigned flag, unsigned attrib);BOOL fcbmatch(const char *fcbname1, const char *fcbname2);BOOL fcmp_wild(const char * s1, const char * s2, unsigned n);VOID touc(BYTE * s, COUNT n);COUNT dos_close(COUNT fd);COUNT dos_commit(COUNT fd);COUNT dos_delete(BYTE * path, int attrib);COUNT dos_rmdir(BYTE * path);COUNT dos_rename(BYTE * path1, BYTE * path2, int attrib);date dos_getdate(void);time dos_gettime(void);COUNT dos_getftime(COUNT fd, date FAR * dp, time FAR * tp);COUNT dos_setftime(COUNT fd, date dp, time tp);ULONG dos_getfsize(COUNT fd);BOOL dos_setfsize(COUNT fd, LONG size);COUNT dos_mkdir(BYTE * dir);BOOL last_link(f_node_ptr fnp);COUNT map_cluster(REG f_node_ptr fnp, COUNT mode);long rwblock(COUNT fd, VOID FAR * buffer, UCOUNT count, int mode);COUNT dos_read(COUNT fd, VOID FAR * buffer, UCOUNT count);COUNT dos_write(COUNT fd, const VOID FAR * buffer, UCOUNT count);LONG dos_lseek(COUNT fd, LONG foffset, COUNT origin);CLUSTER dos_free(struct dpb FAR * dpbp);BOOL dir_exists(char * path);VOID dpb16to32(struct dpb FAR *dpbp);VOID trim_path(BYTE FAR * s);int dos_cd(char * PathName);f_node_ptr get_f_node(void);VOID release_f_node(f_node_ptr fnp);#define release_near_f_node(fnp) ((fnp)->f_count = 0)COUNT dos_getfattr_fd(COUNT fd);COUNT dos_getfattr(BYTE * name);COUNT dos_setfattr(BYTE * name, UWORD attrp);COUNT media_check(REG struct dpb FAR * dpbp);f_node_ptr xlt_fd(COUNT fd);COUNT xlt_fnp(f_node_ptr fnp);struct dhdr FAR * select_unit(COUNT drive);/* fattab.c */void read_fsinfo(struct dpb FAR * dpbp);void write_fsinfo(struct dpb FAR * dpbp);CLUSTER link_fat(struct dpb FAR * dpbp, CLUSTER Cluster1,                 REG CLUSTER Cluster2);CLUSTER next_cluster(struct dpb FAR * dpbp, REG CLUSTER ClusterNum);/* fcbfns.c */VOID DosOutputString(BYTE FAR * s);int DosCharInputEcho(VOID);int DosCharInput(VOID);VOID DosDirectConsoleIO(iregs FAR * r);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -