📄 nother.h
字号:
/*NEO SDK V2.1.90 For DOS
Copyleft Cker Home 2003-2006.
Open Source Obey NEO_PL.TXT.
http://neo.coderlife.net
ckerhome@yahoo.com.cn
文件名称 : nother.h
摘 要 : 本头文件中包含NEO SDK里附加功能的各种函数、结构、全局变量的声明及定义
当前版本 : V0.30
作 者 : 凌晨一点
完成日期 : 2005.6.15
取代版本 : V0.28
原 作 者 : 凌晨一点
完成日期 : 2005.6.5
*/
#ifndef NOTHER_H
#define NOTHER_H
void adv_delay(long delay);
void reset(void);
char total_cdrom(void);
char first_cdrom(void);
char copy_file(char *scr_file, char *des_file);
#ifndef NEO_other_unused
/*函数功能: 与硬件条件无关的高级延时函数. *
*参数说明: delay: 延时量 *
*返回说明: 无. *
*备 注: 由于此函数能产生与具体硬件条件无关的时间 *
* 间隔,因此是库函数delay()的理想替代者. */
void adv_delay(long delay)
{
unsigned int far *clock = (unsigned int far *)0x0000046CL;
unsigned int now;
now = *clock;
while (abs(*clock - now) < delay);
}
#ifndef __cplusplus
void reset(void)
{
union REGS r;
int far *res = (int far *)0x0472;
void interrupt(*_reset)();
puts("Press any key to reset your computer...");
r.h.ah = 0;
int86(0x16, &r, &r);
_reset = MK_FP(0xffff, 0);
*res = 0x1234;
(*_reset)();
}
#else
void reset(void){}
#endif
/*---------------------------------------------------*
*函数功能: 查询用户计算机一共有多少个CD-ROM. *
*参数说明: 无. *
*返回说明: 返回计算机上的CD-ROM个数. *
*备 注: CD-ROM控制函数.用户程序可直接调用. *
*---------------------------------------------------*/
char total_cdrom(void)
{
union REGS reg;
reg.x.ax = 0x1500;
reg.x.bx = 0;
int86(0x2f,®,®);
return reg.x.bx;
}
/*---------------------------------------------------*
*函数功能: 查询计算机上第一个CD-ROM驱动器的驱动号. *
*参数说明: 无. *
*返回说明: 计算机上第一个CD-ROM驱动器的驱动号.比如:G*
*备 注: CD-ROM控制函数.用户程序可直接调用. *
*---------------------------------------------------*/
char first_cdrom(void)
{
union REGS reg;
reg.x.ax = 0x1500;
reg.x.bx = 0;
int86(0x2f,®,®);
return (reg.x.cx+65);
}
char copy_file(char *scr_file, char *des_file)
{
FILE *fin,*fout;
if ((fin=fopen(scr_file, "rb")) == NULL)
{
#ifndef NEO_sys_report_error_unused
Errinfo_t error = {"copy_file", SOURCE_FILE_BAD, 1};
throw_error(error);
#endif
return -1;
}
if ((fout=fopen(des_file, "wb")) == NULL)
{
#ifndef NEO_sys_report_error_unused
Errinfo_t error = {"copy_file", DEST_FILE_BAD, 1};
throw_error(error);
#endif
return -1;
}
while (!feof(fin))
{
fputc(fgetc(fin), fout);
}
fclose(fout);
fclose(fin);
return 0;
}
#endif
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -