int bdos(int dosfun,unsigned dosdx,unsigned dosal)
本函数对MSDOS系统进行调用, dosdx为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号
int bdosptr(int dosfun,void *argument,unsiigned dosal)
本函数对MSDOS系统进行调用,
argument为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号
int int86(int intr_num,union REGS *inregs,union REGS *outregs)
执行intr_num号中断,用户定义的寄存器值存于结构inregs中, 执行完后将返回的寄存器值存于结构outregs中.
int int86x(int intr_num,union REGS *inregs,union REGS *outregs, struct SREGS *segregs)
执行intr_num号中断,用户定义的寄存器值存于结构inregs中和结构segregs中,执行完后将返回的寄存器值存于结构outregs中.
int intdos(union REGS *inregs,union REGS *outregs)
本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值存于结构inregs中,执行完后函数将返回的寄存器值存于结构outregs中
int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)
本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值存于结构inregs和segregs中,执行完后函数将返回的寄存器值存于结构outregs中
void intr(int intr_num,struct REGPACK *preg)
本函数中一个备用的8086软件中断接口它能产生一个由参数intr_num指定的8086软件中断.
函数在执行软件中断前, 从结构preg复制用户定义的各寄存器值到各个寄存器.软件中断完成后,
函数将当前各个寄存器的值复制到结构preg中.参数如下:
intr_num 被执行的中断号,preg为保存用户定义的寄存器值的结构,结构如下
struct REGPACK { unsigned r_ax,r_bx,r_cx,r_dx; unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; }
函数执行完后,将新的寄存器值存于结构preg中
void keep(int status,int size)
以status状态返回MSDOS,但程序仍保留于内存中,所占用空间由size决定.
void ctrlbrk(int (*fptr)()) 设置中断后的对中断的处理程序.
void disable() 禁止发生中断
void enable() 允许发生中断
void geninterrupt(int intr_num) 执行由intr_num所指定的软件中断
void interrupt(* getvect(int intr_num))()
返回中断号为intr_num的中断处理程序, 例如: old_int_10h=getvect(0x10);
void setvect(int intr_num,void interrupt(* isr)())
设置中断号为intr_num的中断处理程序为isr,例如: setvect(0x10,new_int_10h);
void harderr(int (*fptr)())
定义一个硬件错误处理程序, 每当出现错误时就调用fptr所指的程序
void hardresume(int rescode) 硬件错误处理函数
void hardretn(int errcode) 硬件错误处理函数
int inport(int prot) 从指定的输入端口读入一个字,并返回这个字
int inportb(int port) 从指定的输入端口读入一个字节,并返回这个字节
void outport(int port,int word) 将字word写入指定的输出端口port
void outportb(int port,char byte) 将字节byte写入指定的输出端口port
int peek(int segment,unsigned offset)
函数返回segment:offset处的一个字
char peekb(int segment,unsigned offset)
函数返回segment:offset处的一个字节
void poke(int segment,int offset,char value)
将字value写到segment:offset处
void pokeb(int segment,int offset,int value)
将字节value写到segment:offset处
int randbrd(struct fcb *fcbptr,int reccnt)
函数利用打开fcbptr所指的FCB读reccnt个记录.
int randbwr(struct fcb *fcbptr,int reccnt)
函数将fcbptr所指的FCB中的reccnt个记录写到磁盘上
void segread(struct SREGS *segtbl)函数把段寄存器的当前值放进结构segtbl中
int getverify() 取检验标志的当前状态(0=检验关闭,1=检验打开)
void setverify(int value)
设置当前检验状态, value为0表示关闭检验,为1表示打开检验
int getcbrk()本函数返回控制中断检测的当前设置
int setcbrk(int value)本函数用来设置控制中断检测为接通或断开当value=0时,为断开检测.当value=1时,为接开检测
int dosexterr(struct DOSERR *eblkp)
取扩展错误.在DOS出现错误后,此函数将扩充的错误信息填入eblkp所指的DOSERR结构中.该结构定义如下:
struct DOSERR { int exterror;/*扩展错误*/ char class; /*错误类型*/ char action; /*方式*/ char locus; /*错误场所*/ }