标题:C言中怎么用#include "dos.h"
只看楼主
lii_yong
Rank: 2
等 级:论坛游民
帖 子:34
专家分:21
注 册:2010-5-14
结帖率:100%
已结贴  问题点数:6 回复次数:1 
C言中怎么用#include "dos.h"
  C言中怎么用#include "dos.h"
    "dos.s"有什么内容,先谢谢你们了
搜索更多相关主题的帖子: dos include 言中 
2010-05-22 14:00
antonio111
Rank: 2
等 级:论坛游民
帖 子:9
专家分:14
注 册:2010-5-9
得分:4 
#include<dos.h>
就能用了呗.......
内容:/*    dos.h

    Defines structs, unions, macros, and functions for dealing
    with MSDOS and the Intel iAPX86 microprocessor family.

    Copyright (c) Borland International 1987,1988
    All Rights Reserved.
*/
#if __STDC__
#define _Cdecl
#else
#define _Cdecl    cdecl
#endif

#if     !defined(__DOS_DEF_)
#define __DOS_DEF_

/* Variables */
extern    int        _Cdecl _8087;
extern    int        _Cdecl _argc;
extern    char          **_Cdecl _argv;
extern    char          **_Cdecl  environ;
extern    int        _Cdecl _doserrno;
extern    unsigned    _Cdecl _heaplen;
extern    unsigned char    _Cdecl _osmajor;
extern    unsigned char    _Cdecl _osminor;
extern    unsigned     _Cdecl _psp;
extern    unsigned    _Cdecl _stklen;
extern    unsigned     _Cdecl _version;

#define FA_RDONLY    0x01        /* Read only attribute */
#define FA_HIDDEN    0x02        /* Hidden file */
#define FA_SYSTEM    0x04        /* System file */
#define FA_LABEL    0x08        /* Volume label */
#define FA_DIREC    0x10        /* Directory */
#define FA_ARCH        0x20        /* Archive */

#define NFDS    20            /* Maximum number of fds */

struct    fcb    {
    char    fcb_drive;        /* 0 = default, 1 = A, 2 = B */
    char    fcb_name[8];        /* File name */
    char    fcb_ext[3];        /* File extension */
    short    fcb_curblk;        /* Current block number */
    short    fcb_recsize;        /* Logical record size in bytes */
    long    fcb_filsize;        /* File size in bytes */
    short    fcb_date;        /* Date file was last written */
    char    fcb_resv[10];        /* Reserved for DOS */
    char    fcb_currec;        /* Current record in block */
    long    fcb_random;        /* Random record number */
};

struct    xfcb    {
    char        xfcb_flag;    /* Contains 0xff to indicate xfcb */
    char        xfcb_resv[5];    /* Reserved for DOS */
    char        xfcb_attr;    /* Search attribute */
    struct    fcb    xfcb_fcb;    /* The standard fcb */
};

struct    country {
    int    co_date;
    char    co_curr[5];
    char    co_thsep[2];
    char    co_desep[2];
    char    co_dtsep[2];
    char    co_tmsep[2];
    char    co_currstyle;
    char    co_digits;
    char    co_time;
    long    co_case;
    char    co_dasep[2];
    char    co_fill[10];
};

struct    DOSERROR {
    int    exterror;
    char    class;
    char    action;
    char    locus;
};

struct    dfree    {
    unsigned df_avail;
    unsigned df_total;
    unsigned df_bsec;
    unsigned df_sclus;
};

struct    fatinfo {
    char    fi_sclus;
    char    fi_fatid;
    int    fi_nclus;
    int    fi_bysec;
};

struct    devhdr    {
    long        dh_next;    /* Next device pointer */
    short        dh_attr;    /* Attributes */
    unsigned short    dh_strat;    /* Driver strategy routine */
    unsigned short    dh_inter;    /* Driver interrupt routine */
    char        dh_name[8];    /* Device name */
};

struct    time    {
    unsigned char    ti_min;        /* Minutes */
    unsigned char    ti_hour;    /* Hours */
    unsigned char    ti_hund;    /* Hundredths of seconds */
    unsigned char    ti_sec;        /* Seconds */
};

struct    date    {
    int        da_year;    /* Year - 1980 */
    char        da_day;        /* Day of the month */
    char        da_mon;        /* Month (1 = Jan) */
};

struct WORDREGS {
    unsigned int    ax, bx, cx, dx, si, di, cflag, flags;
};

struct BYTEREGS {
    unsigned char    al, ah, bl, bh, cl, ch, dl, dh;
};

union    REGS    {
    struct    WORDREGS x;
    struct    BYTEREGS h;
};

struct    SREGS    {
    unsigned int    es;
    unsigned int    cs;
    unsigned int    ss;
    unsigned int    ds;
};

struct    REGPACK {
    unsigned    r_ax, r_bx, r_cx, r_dx;
    unsigned    r_bp, r_si, r_di, r_ds, r_es, r_flags;
};

#define FP_OFF(fp)    ((unsigned)(fp))
#define FP_SEG(fp)    ((unsigned)((unsigned long)(fp) >> 16))


typedef struct {
    char    drive;        /* do not change    */
    char    pattern [13];    /*  these fields,    */
    char    reserved [7];    /*   Microsoft reserved */
    char    attrib;
    short    time;
    short    date;
    long    size;
    char    nameZ [13];    /* result of the search, asciiz */
}    dosSearchInfo;    /* used with DOS functions 4E, 4F    */


int     _Cdecl absread    (int drive, int nsects, int lsect, void *buffer);
int     _Cdecl abswrite(int drive, int nsects, int lsect, void *buffer);
int     _Cdecl allocmem(unsigned size, unsigned *segp);
int     _Cdecl bdos    (int dosfun, unsigned dosdx, unsigned dosal);
int     _Cdecl bdosptr    (int dosfun, void *argument, unsigned dosal);
struct    country *_Cdecl country    (int xcode, struct country *cp);
void     _Cdecl ctrlbrk    (int _Cdecl (*handler)(void));
void     _Cdecl delay    (unsigned milliseconds);
void     _Cdecl disable    (void);
int     _Cdecl dosexterr    (struct DOSERROR *eblkp);
long     _Cdecl dostounix    (struct date *d, struct time *t);
void          __emit__();
void     _Cdecl enable    (void);
int     _Cdecl freemem    (unsigned segx);
int     _Cdecl getcbrk    (void);
void     _Cdecl getdate    (struct date *datep);
void     _Cdecl getdfree(unsigned char drive, struct dfree *dtable);
void     _Cdecl getfat    (unsigned char drive, struct fatinfo *dtable);
void     _Cdecl getfatd    (struct fatinfo *dtable);
unsigned _Cdecl getpsp    (void);
int     _Cdecl getswitchar    (void);
void     _Cdecl gettime    (struct time *timep);
void    interrupt     (* _Cdecl getvect(int interruptno)) ();
int     _Cdecl getverify    (void);
void     _Cdecl harderr    (int _Cdecl (*handler)());
void     _Cdecl hardresume    (int axret);
void     _Cdecl hardretn(int retn);
int     _Cdecl inport    (int portid);
unsigned char    _Cdecl inportb(int portid);
int     _Cdecl int86    (int intno, union REGS *inregs, union REGS *outregs);
int     _Cdecl int86x    (int intno, union REGS *inregs, union REGS *outregs,
             struct SREGS *segregs);
int     _Cdecl intdos    (union REGS *inregs, union REGS *outregs);
int     _Cdecl intdosx    (union REGS *inregs, union REGS *outregs,
             struct SREGS *segregs);
void     _Cdecl intr    (int intno, struct REGPACK *preg);
void     _Cdecl keep    (unsigned char status, unsigned size);
void      _Cdecl nosound    (void);
void     _Cdecl outport    (int portid, int value);
void     _Cdecl outportb(int portid, unsigned char value);
char    *_Cdecl parsfnm    (const char *cmdline, struct fcb *fcb, int opt);
int     _Cdecl peek    (unsigned segment, unsigned offset);
char     _Cdecl peekb    (unsigned segment, unsigned offset);
void     _Cdecl poke    (unsigned segment, unsigned offset, int value);
void     _Cdecl pokeb    (unsigned segment, unsigned offset, char value);
int     _Cdecl randbrd    (struct fcb *fcb, int rcnt);
int     _Cdecl randbwr    (struct fcb *fcb, int rcnt);
void     _Cdecl segread    (struct SREGS *segp);
int     _Cdecl setblock(unsigned segx, unsigned newsize);
int     _Cdecl setcbrk    (int cbrkvalue);
void     _Cdecl setdate    (struct date *datep);
void     _Cdecl setswitchar    (char ch);
void     _Cdecl settime    (struct time *timep);
void     _Cdecl setvect    (int interruptno, void interrupt (*isr) ());
void     _Cdecl setverify    (int value);
void     _Cdecl sleep    (unsigned seconds);
void      _Cdecl sound    (unsigned frequency);
void     _Cdecl unixtodos    (long time, struct date *d, struct time *t);
int     _Cdecl    unlink    (const char *path);

    /* These are in-line functions.  These prototypes just clean up
       some syntax checks and code generation.
     */

void    _Cdecl    __cli__        (void);
void    _Cdecl    __sti__        (void);
unsigned char _Cdecl __inportb__(int portid);
void    _Cdecl    __outportb__    (int portid, unsigned char value);
void    _Cdecl    __int__        (int interruptnum);

#define disable()    __cli__()        /* Clear interrupt flag */
#define enable()    __sti__()        /* Set interrupt flag */
#define inportb(portid) __inportb__(portid)    /* Byte IN instruction */
#define outportb(portid, v) __outportb__(portid,v)/* Byte OUT instruction */
#define geninterrupt(i) __int__(i)        /* Interrupt instruction */

/* some other compilers use inp, outp for inportb, outportb */
#define inp(portid)    inportb(portid)
#define outp(portid,v)    outportb(portid,v)

#if !__STDC__
char far *cdecl getdta(void);
void      cdecl setdta(char far *dta);

#define MK_FP(seg,ofs)    ((void far *) \
               (((unsigned long)(seg) << 16) | (unsigned)(ofs)))

#define poke(a,b,c)    (*((int  far*)MK_FP((a),(b))) = (int)(c))
#define pokeb(a,b,c)    (*((char far*)MK_FP((a),(b))) = (char)(c))
#define peek(a,b)    (*((int  far*)MK_FP((a),(b))))
#define peekb(a,b)    (*((char far*)MK_FP((a),(b))))
#endif

#endif

2010-05-22 15:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-307720-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.276640 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved