| ²é¿´: 283 | »Ø¸´: 2 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
yaojinling½ð³æ (ÕýʽдÊÖ)
|
[½»Á÷]
ÓÃCÓïÑÔ±àд´®¿Ú³ÌÐò
|
||
|
ÓÃCÓïÑÔ±àд´®¿Ú³ÌÐò ÔÚµ±½ñ,Á÷Ðеıà³ÌÈí¼þÖÖÀà·±¶à£¬ËüÃDZà³Ì·½±ã¡¢Ò×ÓÚά»¤£¬µ«ÊÇÔÚÓëÓ²¼þÖ±½Ó´ò½»µÀºÍ±àÖÆÏµÍ³Èí¼þÊ±È´ÊøÊÖÎ޲ߣ¬ÓÚÊÇCÓïÑÔ¾ÍÓÐÁËÓÃÎäÖ®µØ¡£CÓïÑÔ×÷Ϊ»ã±àÓïÑÔÓë¸ß¼¶ÓïÑÔÖ®¼äµÄÒ»ÖÖ¹ý¶ÉÓïÑÔ£¬¼æÓлã±àÓïÑԵĸßЧºÍ¸ß¼¶ÓïÑԵķ½±ã¡£ ¡¡¡¡ÔÚͨѶÖУ¬ÎªÁ˱£Ö¤ÐÐÔ˰²È«¿É¿¿£¬±ê×¼µÄ´®ÐпڱØÐë¾ßÓÐÐí¶àÎÕÊÖÐźźÍ״̬ÐÅÏ¢¡£ÕâÊÇÒòΪͨѶµÄ¸÷¸ö¼ÆËã»úCPUËٶȲ»Ò»Ñù£¨Õâ»áµ¼Ö¡°´íÖ¡¡±£©ÒÔ¼°·¢ËÍ»ú·¢ËÍÊý¾ÝËٶȱȽÓÊÕ»ú½ÓÊÕËٶȿ죨Õâ»áµ¼Ö¡°¹ý³å¡±£©¡£Îª½â¾öÕâ¸öÎÊÌ⣬ÎÒÃDzÉÓÃÒ»¸ö¼òµ¥µÄÎÕÊÖÐźţ¬¼´·¢ËÍ»úÿ´Î½ö·¢ËͰë¸ö×Ö½Ú£¨µÍ4룩µÄÊý¾Ý£¬¶øÁíÍâ°ë¸ö×Ö½Ú£¨¸ß4룩ÔòÓÃÀ´´«ËÍÐÅÏ¢¡£ÎÒÃÇ¿ÉÒÔ¶ÔÐÅϢ루¸ß4룩½øÐÐÈçϼòµ¥µÄ±àÂ룺 0H£º·¢Ë͵ÄÊÇеİë¸ö×Ö½ÚÊý¾Ý 1H£ºÖØÐ·¢ËÍÉϴδ«ËÍ´íÎóµÄÊý¾Ý 2H£ºÎļþÃû½áÊø 3H£ºÎļþ½áÊø ÕâÑù£¬Ã¿µ±·¢ËÍ»ú·¢ËÍÒ»¸ö×Ö½ÚÒԺ󣬾͵ȴý½ÓÊÜ»ú·¢»ØËÍÐźţ¬Õâ»ØËÍÐźžÍÊÇ·¢ËÍ»ú·¢Ë͹ýÀ´µÄÄǸö×Ö½Ú¡£·¢ËÍ»ú½ÓÊÕµ½»ØËÍÐźź󣬰ÑËüÓë¸Õ·¢Ë͵Ä×Ö½ÚÏà±È½Ï£¬Èç¹ûÏàͬ£¬¾Í·¢ËÍеİë¸ö×Ö½Ú£¬·ñÔò¾ÍÖØÐ·¢ËÍ¡£ÐÂÊý¾ÝÓë¾ÉÊý¾Ýͨ¹ýÐÅϢλÀ´Çø·Ö¡£ÏÂÃæ¾ÍÊÇÓÃCÓïÑÔ±àд¿ØÖÆ´®ÐпڵijÌÐò¡£ #include "dos.h" #include "stdlib.h" #include "stdio.h" #define PORT 0 void SendFile(char *fname); /* ·¢ËÍÎļþ*/ void Send(int s); /*·¢ËÍÒ»¸ö×Ö½Ú*/ void SendFileName(char *fname); /*·¢ËÍÎļþÃû*/ void ReceiveFile(); /*½ÓÊÕÎļþ*/ void GetFileName(char *f); /*½ÓÊÕÎļþÃû*/ void InitPort(int port,unsigned char para); /*³õʼ»¯¶Ë¿Ú*/ void SendPort(int port,char c); /*¶Ë¿Ú·¢ËÍ*/ int ReadPort(int port); /*¶Á¶Ë¿Ú×Ö½Ú*/ int CheckState(int port); /*¼ì²é¶Ë¿Ú״̬*/ int Receive(int port,int *G); /*½ÓÊÕÒ»¸ö×Ö½Ú*/ main(int argc,char *argv[]) { if(argc<2){ printf("Please input R(receive) or S(sent) parametre:" ;exit(1); } InitPort(PORT,231); if(*argv[1]==''''S'''') /*¼ì²éÑ¡ÔñµÄÓÐЧÐÔ*/ SendFile(argv[2]); else if(*argv[1]==''''R'''') ReceiveFile(); else{ printf("Error parament.Please input again." ;exit(1); } } void SendFile(char *fname) { FILE *fp; int ch,s; if((fp=fopen(fname,"rb" )==NULL){ printf("Can''''t open the file.\n" ;exit(1); } SendFileName(fname); do{ ch=(int)getc(fp); if(ferror(fp)){ printf("Error reading file.\n" ;break; } s=ch%16; /*È¡ÎļþÖÐÒ»¸ö×ֽڵĵÍ4λ*/ Send(s); s=ch/16; /*È¡ÎļþÖÐÒ»¸ö×ֽڵĸß4λ*/ Send(s); }while(!feof(fp)); s=46; /*·¢ËÍÎļþ½áÊøÐÅÏ¢*/ Send(s); Send(s); fclose(fp); } void Send(s) int s; { int G; SendPort(PORT,s); G=ReadPort(PORT); /*µÈ´ýÎÕÊÖÐźÅ*/ if(s!=G) s=s+16; do{ SendPort(PORT,s); G=ReadPort(PORT);/*µÈ´ýÎÕÊÖÐźÅ*/ }while(s!=G); } void SendFileName(fname) char *fname; { int s,ch; printf("Now transmit the file.Please wait..." ;while(*fname){ ch=(int)fname++; s=ch%16; /*È¡ÎļþÃûÖÐÒ»¸ö×ֽڵĵÍ4λ*/ Send(s); s=ch/16; Send(s); /*È¡ÎļþÃûÖÐÒ»¸ö×ֽڵĵÍ4λ*/ } s=32; /*·¢ËÍÎļþÃû½áÊø±êÖ¾*/ Send(s); Send(s); } void ReceiveFile(){ FILE *fp; char ch; int G1,G2,G3; char fname[15]; GetFileName(fname); printf("Receiving file %s.\n",fname); remove(fname); if((fp=fopen(fname,"wb" )==NULL){ printf("Can''''t open output file.\n" ;exit(1); } /*Ñ»·Îª¼ì²âÿ´Î½ÓÊܵÄÊý¾ÝÊÇ·ñΪÐÂÊý¾Ý£¬Èç¹û²»ÊÇ£¬*/ /*ÔòÓô˴νÓÊÕµÄÊý¾Ý¸²¸ÇÉϴνÓÊÕµÄÊý¾Ý*/ G1=ReadPort(PORT); G2=Receive(PORT,&G1); do{ G3=Receive(PORT,&G2); ch=(char)(G1%16+G2*16);/*»Ö¸´·Ö¿ªµÄÊý¾Ý£¬×éºÏ¸ß4λºÍµÍ4λ*/ putc(ch,fp); if(ferror(fp)){ printf("\nError writing file." ;exit(1); } G2=Receive(PORT,&G3); G1=G3; }while(G1/16!=48); printf("\nTransmit finished." ;fclose(fp); } int Receive(port,G) int port,*G; { int GM; SendPort(port,*G); GM=ReadPort(port); if(GM/16==0) return GM; else if(GM/16==1){ do{ *G=GM; SendPort(port,GM); GM=ReadPort(port); }while(GM/16==1); } return GM; } void GetFileName(char *f) { int G1,G2,G3; char ch; G1=ReadPort(PORT); G2=ReadPort(PORT); do{ G3=Receive(PORT,&G3); ch=(char)(G1%16+G2/16); *f=ch; *f++; G2=Receive(PORT,&G3); G1=G3; }while(G1/16!=32); printf("File name transmit finished.\n" ;} void InitPort(port,para) int port; unsigned char para; { union REGS reg; reg.x.dx=port; reg.h.ah=0; reg.h.al=para; int86(0x14,®,® ;} void SendPort(port,c) int port; char c; { union REGS reg; reg.x.dx=port; reg.h.al=c; reg.h.ah=1; int86(0x14,®,® ;if(reg.h.ah&128){ printf("\nSend mistakes!" ;exit(1); } } int ReadPort(port) int port; { union REGS reg; while(!(CheckState(port)&256)){ if(kbhit()){/*Èç¶Ë¿Ú³¤ÆÚÎÞÊý¾Ý¿ÉÈËΪÖÕÖ¹µÈ´ý*/ printf("Press any key to exit." ;getch(); exit(1); } } reg.x.dx=port; reg.h.ah=2; int86(0x14,®,® ;if(reg.h.ah&128){ printf("\nRead mistake!" ;exit(1); } return reg.h.al; } int CheckState(port) int port; { union REGS reg; reg.x.dx=port; reg.h.ah=3; int86(0x14,®,® ;return reg.x.ax; } ÒÔÉϳÌÐò¿É´«Ë͸÷ÖÖ¸ñʽµÄÎļþ£¬Ò²ÓÐÒ»¶¨µÄ×Ô¶¯¾À´íÄÜÁ¦£¬µ«¶ÔÓÚÒì³£Çé¿öµÄ ´¦ÀíÄÜÁ¦±È½ÏÈõ£¬¶ÁÕß¿ÉÒÔ×Ô¼º¸Ä½ø¡£ÓÉÓÚÆª·ùÏÞÖÆ£¬¶ÔÓÚÖжÏ14HµÄ¹¦ÄÜ¡¢Èë ¿Ú²ÎÊý¼°·µ»Ø²ÎÊýµÄÒâÒåÇë¶ÁÕß×Ô¼º²éÓйØ×ÊÁÏ¡£ [ Last edited by sdlwwxb on 2005-12-16 at 17:58 ] |
» ²ÂÄãϲ»¶
¸´ÊÔµ÷¼Á
ÒѾÓÐ23È˻ظ´
Çóµ÷¼ÁѧУ
ÒѾÓÐ15È˻ظ´
085801µçÆø×¨Ë¶272Çóµ÷¼Á
ÒѾÓÐ19È˻ظ´
²ÄÁϹ¤³Ì281»¹Óе÷¼Á»ú»áÂð
ÒѾÓÐ44È˻ظ´
Ò»Ö¾Ô¸»ªÖÐũҵ071010£¬320Çóµ÷¼Á
ÒѾÓÐ11È˻ظ´
289 ·Ö105500ҩѧר˶Çóµ÷¼Á(ÕÒBÇøÑ§Ð£)
ÒѾÓÐ3È˻ظ´
ɽ¶«Ê¡»ù½ð2026
ÒѾÓÐ12È˻ظ´
ҩѧÇóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Ò»Ö¾Ô¸»¦9£¬ÉúÎïѧ326Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
307ÖÐÒ½¿¼Ñе÷¼Á
ÒѾÓÐ3È˻ظ´
2Â¥2005-11-18 18:33:26
imrking
ÈÙÓþ°æÖ÷ (ÖøÃûдÊÖ)
- Ó¦Öú: 17 (СѧÉú)
- ¹ó±ö: 9.05
- ½ð±Ò: 4827.8
- É¢½ð: 15
- ºì»¨: 1
- Ìû×Ó: 2468
- ÔÚÏß: 125.8Сʱ
- ³æºÅ: 56287
- ×¢²á: 2005-01-06
- ÐÔ±ð: GG
- רҵ: ¼ÆËã»úÈí¼þ
- ¹ÜϽ: ÎÞ»ú·Ç½ðÊô

3Â¥2005-11-18 19:48:12














;
»Ø¸´´ËÂ¥