📄 cdrom.cpp
字号:
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <ctype.h>
#include <process.h>
#include <string.h>
void help()
{
printf("Usage:cdrom [O|C] [cdrom device name]\n");
}
int main(int argc,char *argv[])
{
union REGS inregs,outregs;
char *cdromdevicename;
char buf[] = "0";
clrscr();
if ( (argc != 3 ) ||
((toupper(*argv[1]) != 'C') && (toupper(*argv[1]) != 'O'))
)
{
help();
exit(0);
}
cdromdevicename = argv[2];
for (int i=0; i<strlen(cdromdevicename); i++)
{
cdromdevicename[i] = toupper(cdromdevicename[i]);
}
inregs.x.dx = (int) cdromdevicename; /* open cdrom device using handle */
inregs.h.al = 0;
inregs.h.ah = 0x3d;
intdos(&inregs,&outregs);
if((outregs.x.cflag == 1) !=0) /* if carry flag is set, there was an error */
{
printf("Error open the device %s\n",cdromdevicename);
exit(1);
}
inregs.x.bx = outregs.x.ax; /* save the device handle */
if(toupper(*argv[1]) == 'C')
buf[0] = 0x05; /* open cdrom */
else
buf[0] = 0x0; /* close cdrom */
inregs.x.dx = (int) buf;
inregs.x.ax = 0x4403;
inregs.x.cx = 0x01; /*number of bytes to write */
intdos(&inregs, &outregs);
/* if carry flag is set, there was an error */
if((outregs.x.cflag == 1) !=0)
{
printf("Error handle the device %s\n",cdromdevicename);
exit(1);
}
else
{
if (toupper(*argv[1]) == 'C')
printf("Close the cdrom door!\n");
else
printf("Open the cdrom door!\n");
}
return(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -