Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 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 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

yaojinling01

0.5

лл£¡£¡£¡£¡£¡£¡111
2Â¥2005-11-18 18:33:26
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

imrking

ÈÙÓþ°æÖ÷ (ÖøÃûдÊÖ)

????????????????????
ÏÂÓêÁË£¬±ðÍüÁË´òÉ¡£¬ÊªÉíÊÇС£¬Áܲ¡¾ÍÂé·³À²¡«¡«¡«£º£©
3Â¥2005-11-18 19:48:12
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ yaojinling µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 271Çóµ÷¼Á +31 2261744733 2026-04-11 31/1550 2026-04-15 10:50 by shenshen207
[¿¼ÑÐ] 279Çóµ÷¼Á +12 ÕÅ·¬ÇѲ»³´µ° 2026-04-11 12/600 2026-04-14 15:38 by zs92450
[½Ìʦ֮¼Ò] ת³¤Æ¸ÁË +7 ¼òµ¥»¯xn 2026-04-13 7/350 2026-04-14 14:50 by xindong
[¿¼ÑÐ] 293Çóµ÷¼Á +16 ÎÒ°®¸ßÊý¸ßÊý°®Î 2026-04-12 18/900 2026-04-13 21:47 by ѧԱJpLReM
[¿¼ÑÐ] 302Çóµ÷¼Á +10 Ò×£¡? 2026-04-13 10/500 2026-04-13 19:04 by lbsjt
[¿¼ÑÐ] һ־Ը˫·Ç085400µç×ÓÐÅÏ¢344 Çóµ÷¼Á£¬¶Ô²ÄÁϺͻ¯Ñ§·½ÏòÒ²¸ÐÐËȤ +12 ÎÞÇéµÄСÑò 2026-04-09 13/650 2026-04-13 14:17 by ÕÅzhihao
[¿¼ÑÐ] 297¹¤¿Æ£¬Çóµ÷¼Á? +13 ºÓÄÏũҵ´óѧ-ÄÜ 2026-04-12 13/650 2026-04-13 14:12 by dingyanbo1
[¿¼ÑÐ] ÉúÎïѧµ÷¼Á£¬Ò»Ö¾Ô¸Î÷ÄÏ´óѧ348£¬TopÆÚ¿¯Ò»Çø¶þ×÷¡¢¶þÇøÈý×÷£¬ÈýµÈ½±Ñ§½ðÈý´Î +5 candyyyi 2026-04-09 5/250 2026-04-13 09:02 by ¿Éµ­²»¿ÉÍü
[¿¼ÑÐ] 267Çóµ÷¼Á +8 ÔÙæҲҪ³Ô·¹°¡ 2026-04-09 8/400 2026-04-11 21:42 by cfdbai
[¿¼ÑÐ] 303Çóµ÷¼Á +14 SereinQ 2026-04-10 15/750 2026-04-11 20:43 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +19 ¹þ¹þ¹þ^_^ 2026-04-08 20/1000 2026-04-11 20:43 by stoner78
[¿¼ÑÐ] 284Çóµ÷¼Á +11 archer.. 2026-04-09 12/600 2026-04-11 20:23 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 085506-Çóµ÷¼Á-285·Ö +3 À×Å··ÉÌß 2026-04-08 3/150 2026-04-11 08:37 by zhq0425
[¿¼ÑÐ] 284Çóµ÷¼Á +9 ÈÃÎÒÉϰ¶°É°¢Î÷ 2026-04-09 11/550 2026-04-10 19:18 by ¾¸jing
[¿¼ÑÐ] ±¾9 Ò»Ö¾Ô¸Î÷¹¤´ó085601 324Çóµ÷¼Á +5 wysyjs25 2026-04-10 5/250 2026-04-10 16:57 by luoyongfeng
[¿¼ÑÐ] Ò»Ö¾Ô¸»¦9£¬326ÉúÎïѧÇóÏà¹Ø×¨Òµµ÷¼Á +4 Áõīī 2026-04-09 4/200 2026-04-10 12:07 by pengliang8036
[¿¼ÑÐ] µ÷¼Á +19 2261744733 2026-04-08 19/950 2026-04-09 19:11 by vgtyfty
[¿¼ÑÐ] ²ÄÁÏר˶³õÊÔ·Ö332Ò»Ö¾Ô¸Î÷±±¹¤Òµ´óѧ£¬ +12 ¹ÊÈË?? 2026-04-09 12/600 2026-04-09 18:34 by Ccclqqq
[¿¼ÑÐ] 083200 ³õÊÔ305·Ö Çóµ÷¼Á Ôݲ»¿¼ÂÇ¿çרҵ +15 Claireyyyy 2026-04-09 15/750 2026-04-09 16:11 by zhuimr
[¿¼ÑÐ] Çóµ÷¼Á +3 ÖíÈâ¶Õ·ÛÌõcc 2026-04-08 4/200 2026-04-09 10:05 by ÖíÈâ¶Õ·ÛÌõcc
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û