亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? usb.lst

?? usb接口的移動硬盤
?? LST
?? 第 1 頁 / 共 3 頁
字號:
 638   2      
 639   2        ack_setup(0);
 640   2        ack_setup(1);
 641   2        Control_Data.wLength=Control_Data.DeviceRequest.wLength;
 642   2        USB_not_end=0;
 643   2        USB_usb_endp0_in=1;
 644   2        USB_setup_packet_in=0;
 645   2        USB_setup_packet_out=0;
 646   2        if(Control_Data.DeviceRequest.bmRequestType&0x80){USB_setup_packet_in=1;return;}
 647   2        else {USB_setup_packet_out=1;return;}
 648   2       }
 649   1       else
 650   1        {
 651   2         select_endpoint(0);
 652   2         clear_buffer();
 653   2        }
 654   1      }
 655          
 656          void endp0_in(void)                                        //終端點0輸入處理
 657          {
 658   1       read_last_status(1);
 659   1       if(USB_setup_packet_in||USB_not_end)
 660   1        {
 661   2         if((Control_Data.DeviceRequest.bmRequestType==0xA1)&&(Control_Data.DeviceRequest.bRequest==0xFE))
 662   2          get_max_LUN();
 663   2         switch(Control_Data.DeviceRequest.bmRequestType&0x7B)
 664   2          {
 665   3               case 0:
 666   3                 switch (Control_Data.DeviceRequest.bRequest)
 667   3                  {
 668   4                   case 0: get_status(0);break;
 669   4                   case 6: get_descriptor();break;
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 12  

 670   4                   case 8: get_configuration();break;
 671   4                       default:break;
 672   4                  }
 673   3               case 1:
 674   3                 switch (Control_Data.DeviceRequest.bRequest)
 675   3                  {
 676   4               case  0: get_status(1);break;
 677   4                   case 10: get_interface();break;
 678   4               default: break;
 679   4                      }
 680   3               case 2:
 681   3                {
 682   4             if(Control_Data.DeviceRequest.bRequest==0)get_status(2);  
 683   4                }
 684   3               default: break;
 685   3          }
 686   2        return;
 687   2        }
 688   1       if(USB_setup_packet_out) 
 689   1        {
 690   2         if((Control_Data.DeviceRequest.bmRequestType==0x21)&&(Control_Data.DeviceRequest.bRequest==0xFF))
 691   2          mass_storage_reset();
 692   2      
 693   2         switch(Control_Data.DeviceRequest.bmRequestType&0x03)
 694   2          {
 695   3               case 0:
 696   3           switch (Control_Data.DeviceRequest.bRequest)
 697   3            {
 698   4                 case     CLEAR_FEATURE: clear_feature(0);break;
 699   4                 case       SET_FEATURE: set_feature(0);break;
 700   4                 case       SET_ADDRESS: set_usb_address();break;                  //set_address                 
 701   4                 case    SET_DESCRIPTOR: set_descriptor();break;                //set_descriptor
 702   4                 case SET_CONFIGURATION: set_configuration(); break;         //set_configurat                           
 703   4                 default: break;
 704   4                }break;
 705   3               case 1:
 706   3            switch (Control_Data.DeviceRequest.bRequest)
 707   3                 {
 708   4                  case CLEAR_FEATURE:  clear_feature(1);break;
 709   4                  case   SET_FEATURE:  set_feature(1); break;
 710   4              case SET_INTERFACE: set_interface();break;
 711   4                  default: break;
 712   4              }break;
 713   3               case 2:
 714   3                switch (Control_Data.DeviceRequest.bRequest)
 715   3                 {
 716   4                  case CLEAR_FEATURE: clear_feature(2);break;
 717   4                  case   SET_FEATURE: set_feature(2);break;
 718   4              default: break;      
 719   4                 }break;
 720   3               default: break;
 721   3          }
 722   2        }
 723   1      }
 724          
 725          /*void endp1_out(void)
 726          {
 727           printc(0xcc);
 728          }*/
 729          
 730          
 731          /*void endp1_in(void)
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 13  

 732          {
 733           printc(0xcc);
 734          }*/
 735          
 736          void Return_CSW(unsigned long int DataResidue,unsigned char status)          //返回CSW數據包
 737          {
 738   1        
 739   1        csw.dCSWTag=cbw.dCBWTag;
 740   1        csw.dCSWDataResidue=DataResidue;
 741   1        csw.bCSWStatus=status;
 742   1        while(select_endpoint(5)&0x01);
 743   1        write_endpoint_buff(5,sizeof(CSW),(unsigned char *)(&csw));
 744   1        USB_usb_endp2_in=0;
 745   1        USB_usb_endp2_out=0;
 746   1        SCSI_Command=1;
 747   1        SCSI_Data=0;
 748   1      }
 749          
 750          
 751          void write_10(void)                                                         //SCSI寫操作
 752          {
 753   1       unsigned long int LBA,Byte_Count;
 754   1       unsigned char i;
 755   1        if(SCSI_Data)
 756   1        {
 757   2         ((unsigned char*)&LBA)[0]=cbw.CBWCB[2];
 758   2         ((unsigned char*)&LBA)[1]=cbw.CBWCB[3];
 759   2         ((unsigned char*)&LBA)[2]=cbw.CBWCB[4];
 760   2         ((unsigned char*)&LBA)[3]=cbw.CBWCB[5];
 761   2      
 762   2         ((unsigned char*)&Byte_Count)[0]=0;
 763   2         ((unsigned char*)&Byte_Count)[1]=cbw.CBWCB[7];
 764   2         ((unsigned char*)&Byte_Count)[2]=cbw.CBWCB[8];
 765   2         ((unsigned char*)&Byte_Count)[3]=0;
 766   2         Byte_Count<<=1;
 767   2         while(USB_usb_endp2_out)
 768   2          { 
 769   3           if((((unsigned char *)&Byte_Count)[3]==0)&&((((unsigned char *)&Byte_Count)[2]&0x01)==0))
 770   3            {
 771   4             write_IDE_LBA0(((unsigned char*)&LBA)[0]);
 772   4             write_IDE_LBA1(((unsigned char*)&LBA)[1]);
 773   4             write_IDE_LBA2(((unsigned char*)&LBA)[2]);
 774   4             write_IDE_LBA3(((unsigned char*)&LBA)[3]);
 775   4             LBA++;
 776   4             write_IDE_sector_count(1);
 777   4             wait_IDE_busy();
 778   4             write_IDE_sector();
 779   4             IDE_Address=IDE_Data;
 780   4             set_IDE_address();
 781   4            }
 782   3           while(!(select_endpoint(4)&0x01));
 783   3               if(Byte_Count>64)
 784   3                {
 785   4                 read_endpoint_buff(4,64,buffer);      
 786   4                 Byte_Count-=64;
 787   4                }
 788   3               else 
 789   3                {
 790   4             read_endpoint_buff(4,Byte_Count,buffer);
 791   4             Return_CSW(0x00,SUCCESS);
 792   4                }
 793   3           for(i=0;i<64;i++)
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 14  

 794   3            {
 795   4             while(!IDE_IORDY);
 796   4      
 797   4             IDE_DIOW=0;
 798   4             IDE_DATA_L=buffer[i];
 799   4             i++;
 800   4             IDE_DATA_H=buffer[i];
 801   4             IDE_DIOW=1;
 802   4            }
 803   3          } 
 804   2         wait_IDE_busy();
 805   2         IDE_Address=IDE_Bus_Not_Use;
 806   2         set_IDE_address();
 807   2        }
 808   1      }
 809          
 810          
 811          void endp2_out(void)                                                     //主端點輸出處理
 812          {
 813   1       if(SCSI_Command)
 814   1        {
 815   2         if(read_endpoint_buff(4,sizeof(CBW),(unsigned char *)(&cbw))!=sizeof(CBW)){error(2);return;}
 816   2         if(cbw.dCBWSignature!=0x55534243){error(3);return;}
 817   2         SCSI_Command=0;
 818   2         SCSI_Data=1;
 819   2         if(cbw.bmCBWFlags&0x80)
 820   2          {
 821   3               USB_usb_endp2_in=1;
 822   3               USB_usb_endp2_out=0;
 823   3              }
 824   2         else
 825   2          {
 826   3               USB_usb_endp2_in=0;
 827   3               USB_usb_endp2_out=1;
 828   3           switch(cbw.CBWCB[0])
 829   3            {
 830   4             case        Write_10: write_10();break;
 831   4             case Test_Unit_Ready: Return_CSW(0x00,SUCCESS);break; 
 832   4             case          Verify: Return_CSW(0x00,SUCCESS);break;
 833   4                 default             : Return_CSW(cbw.dCBWDataTransgerLength,FAIL);break;
 834   4                }
 835   3              }
 836   2        }
 837   1       else
 838   1        {
 839   2         read_last_status(4);
 840   2         select_endpoint(4);
 841   2         clear_buffer();
 842   2        }
 843   1      }
 844          
 845          
 846          void read_10(void)                                                              //SCSI讀處理
 847          {
 848   1       unsigned long int LBA=0,Byte_Count;
 849   1       unsigned char i;
 850   1       if(SCSI_Data)
 851   1        {
 852   2      
 853   2         ((unsigned char*)&LBA)[0]=cbw.CBWCB[2];
 854   2         ((unsigned char*)&LBA)[1]=cbw.CBWCB[3];
 855   2         ((unsigned char*)&LBA)[2]=cbw.CBWCB[4];
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 15  

 856   2         ((unsigned char*)&LBA)[3]=cbw.CBWCB[5];
 857   2      
 858   2         ((unsigned char*)&Byte_Count)[0]=0;
 859   2         ((unsigned char*)&Byte_Count)[1]=cbw.CBWCB[7];
 860   2         ((unsigned char*)&Byte_Count)[2]=cbw.CBWCB[8];
 861   2         ((unsigned char*)&Byte_Count)[3]=0;
 862   2         Byte_Count<<=1;
 863   2         pData=buffer;
 864   2         while(USB_usb_endp2_in)
 865   2          {
 866   3           if((((unsigned char *)&Byte_Count)[3]==0)&&((((unsigned char *)&Byte_Count)[2]&0x01)==0))
 867   3            {
 868   4             write_IDE_LBA0(((unsigned char*)&LBA)[0]);
 869   4             write_IDE_LBA1(((unsigned char*)&LBA)[1]);
 870   4             write_IDE_LBA2(((unsigned char*)&LBA)[2]);
 871   4             write_IDE_LBA3(((unsigned char*)&LBA)[3]);
 872   4             LBA++;
 873   4             write_IDE_sector_count(1);
 874   4             read_IDE_sector();
 875   4             IDE_Address=IDE_Data;
 876   4             set_IDE_address();
 877   4            }
 878   3           IDE_DATA_H=0xFF;
 879   3           for(i=0;i<64;i++)
 880   3            {
 881   4             while(!IDE_IORDY);
 882   4             IDE_DIOR=0;
 883   4             buffer[i]=IDE_DATA_L;
 884   4             i++;
 885   4             buffer[i]=IDE_DATA_H;
 886   4             IDE_DIOR=1;
 887   4            }
 888   3           while(select_endpoint(5)&0x01);
 889   3           if(Byte_Count>MAX_BULK_DATA_SIZE)
 890   3            {
 891   4             write_endpoint_buff(5,MAX_BULK_DATA_SIZE,pData);
 892   4             Byte_Count-=MAX_BULK_DATA_SIZE;
 893   4            }
 894   3           else
 895   3            {
 896   4             write_endpoint_buff(5,Byte_Count,pData);
 897   4             Return_CSW(0x00,SUCCESS);
 898   4             IDE_Address=IDE_Bus_Not_Use;
 899   4             set_IDE_address();
 900   4            }
 901   3          }
 902   2        }
 903   1       else error(2);return;
 904   1      }
 905          
 906          void endp2_in(void)                                      //主端點輸入處理
 907          {
 908   1          switch(cbw.CBWCB[0])
 909   1          {
 910   2           case              Read_10: read_10();break;
 911   2           case              Inquiry: write_endpoint_buff(5,0x24,DISK_INF);Return_CSW(0x00,SUCCESS); break;
 912   2           case        Read_Capacity: write_endpoint_buff(5,0x08,DISK_CAPACITY);Return_CSW(0x00,SUCCESS);break;
 913   2           case Read_Format_capacity: write_endpoint_buff(5,0x00,0x00);Return_CSW(cbw.dCBWDataTransgerLength,FAI
             -L);break;
 914   2           case        Request_Sense: write_endpoint_buff(5,0x12,SENSE);Return_CSW(0x00,SUCCESS);break;
 915   2               case       Medium_Removal: Return_CSW(0x00,SUCCESS);break;
 916   2               case                 0x1a: write_endpoint_buff(5,0x00,0x00);Return_CSW(cbw.dCBWDataTransgerLength,FAIL);
C51 COMPILER V7.06   USB                                                                   03/02/2006 23:51:19 PAGE 16  

             -break;
 917   2           default                  : write_endpoint_buff(5,0x00,0x00);Return_CSW(cbw.dCBWDataTransgerLength,FAI
             -L);break;
 918   2              }
 919   1      }
 920          
 921          void main(void)
 922          {
 923   1      
 924   1       disconnect_usb();
 925   1      
 926   1       system_initial();
 927   1       init_usb();
 928   1       connect_usb();
 929   1        
 930   1       while(1)
 931   1        { 
 932   2         if(!USB_INT)
 933   2          {
 934   3               read_interrupt_register();
 935   3      
 936   3               if(Interrupt_bus_reset){usb_bus_reset();continue;}
 937   3               if(Interrupt_suspend_change){usb_bus_suspend();continue;}
 938   3           if(Interrupt_control_out_port){endp0_out();continue;}
 939   3               if(Interrupt_control_in_port&&USB_usb_endp0_in){endp0_in();continue;}
 940   3               if(Interrupt_main_out_port){endp2_out();continue;}
 941   3               if(Interrupt_main_in_port&&USB_usb_endp2_in){endp2_in();continue;}
 942   3          }
 943   2        }
 944   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2151    ----
   CONSTANT SIZE    =    126    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     17      35
   IDATA SIZE       =    139    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区免费| 蜜桃传媒麻豆第一区在线观看| 国产69精品久久99不卡| 国产喂奶挤奶一区二区三区| 国产精品99久| 亚洲欧洲日韩女同| 99久久99久久精品国产片果冻| 亚洲精品视频一区| 7777女厕盗摄久久久| 国产麻豆一精品一av一免费| 精品国产免费视频| 国产91精品露脸国语对白| 成人欧美一区二区三区白人| 在线看国产一区| 奇米影视在线99精品| 久久久一区二区三区捆绑**| aaa欧美大片| 亚洲成人黄色小说| 亚洲精品一区二区三区精华液 | 亚洲三级在线看| 在线视频中文字幕一区二区| 日本少妇一区二区| 国产日韩欧美不卡| 欧美自拍偷拍一区| 激情成人午夜视频| 亚洲精品日产精品乱码不卡| 日韩一级免费观看| 成人免费av在线| 日韩高清欧美激情| 中文字幕一区二区三中文字幕| 欧美日韩国产免费一区二区| 国产精华液一区二区三区| 亚洲在线免费播放| 国产婷婷色一区二区三区| 欧洲色大大久久| 国产精品18久久久久久vr| 日韩码欧中文字| 欧美不卡视频一区| 色欧美乱欧美15图片| 国产一区不卡在线| 亚洲成av人片一区二区三区| 欧美激情一区二区三区全黄| 欧美精品自拍偷拍动漫精品| 成人黄色777网| 久久国产精品99精品国产| 亚洲欧美日韩国产综合在线| 欧美成人综合网站| 日韩一本二本av| 91成人免费电影| 国产91丝袜在线观看| 麻豆精品久久精品色综合| 亚洲免费av在线| 久久久91精品国产一区二区精品| 欧美高清视频在线高清观看mv色露露十八| 不卡区在线中文字幕| 国产综合色在线| 男女男精品视频| 亚洲午夜日本在线观看| 日韩一区日韩二区| 国产日韩欧美精品在线| 欧美大胆人体bbbb| 在线不卡的av| 欧美日韩国产天堂| 欧美色图免费看| 欧美午夜一区二区| 91美女精品福利| 91老司机福利 在线| 成人激情视频网站| 国产精品亚洲专一区二区三区 | 日产国产高清一区二区三区| 亚洲精品成人精品456| 国产精品天干天干在线综合| 久久久久久久综合狠狠综合| 亚洲精品一线二线三线| 日韩欧美精品在线| 日韩精品在线网站| 精品少妇一区二区三区| 精品免费日韩av| 精品人伦一区二区色婷婷| 欧美α欧美αv大片| 精品国产91久久久久久久妲己| 日韩欧美精品在线| 精品蜜桃在线看| 久久久综合视频| 欧美韩国日本不卡| 国产免费成人在线视频| 国产精品福利影院| 亚洲男人的天堂网| 免费观看成人av| 激情小说欧美图片| 国产精品一级片| 99久久99久久综合| 欧美午夜片在线看| 日韩三级视频在线观看| 欧美精品一区二区久久久| 久久综合五月天婷婷伊人| 日本一区二区三区视频视频| 国产精品国产三级国产| 亚洲综合色视频| 日本不卡一区二区| 国产精品综合网| 99久久伊人网影院| 欧美无砖专区一中文字| 欧美tk—视频vk| 国产精品对白交换视频| 亚洲成av人在线观看| 久久国产免费看| 成人午夜精品在线| 欧美日韩精品福利| 久久九九全国免费| 亚洲一区国产视频| 国内外成人在线视频| 91天堂素人约啪| 91精品国产日韩91久久久久久| www久久精品| 亚洲免费在线观看| 免费在线观看一区二区三区| 国产69精品久久久久毛片| 欧美日免费三级在线| 欧美精品一区在线观看| 一区二区三区美女视频| 激情六月婷婷久久| 在线观看日产精品| 国产亚洲一区二区三区四区 | 5月丁香婷婷综合| 国产亚洲欧洲一区高清在线观看| 一区二区久久久久久| 久久精品国产99久久6| 91日韩在线专区| 日韩免费观看2025年上映的电影| 亚洲欧洲性图库| 国产乱妇无码大片在线观看| 欧美男人的天堂一二区| 国产精品美女久久久久久久网站| 日韩在线观看一区二区| 色综合一个色综合| 国产亚洲制服色| 美女网站视频久久| 欧美色大人视频| 综合在线观看色| 国产成人综合在线播放| 欧美精品久久久久久久多人混战| 中文字幕一区二区日韩精品绯色 | 成人黄色av电影| 欧美成人精品高清在线播放| 亚洲国产精品久久一线不卡| 成人app网站| 欧美精品一区二区精品网| 日本不卡视频在线| 欧美亚洲国产怡红院影院| 中文字幕制服丝袜一区二区三区| 国产一区二区久久| 欧美成人精品高清在线播放| 日本成人在线不卡视频| 欧美男女性生活在线直播观看| 亚洲日本一区二区三区| 国产电影精品久久禁18| 久久亚洲精品国产精品紫薇| 青青青爽久久午夜综合久久午夜| 在线观看国产91| 一区2区3区在线看| 91麻豆国产香蕉久久精品| 国产精品三级视频| 99在线热播精品免费| 国产欧美日韩视频在线观看| 国产乱码精品一区二区三区忘忧草 | 国产在线看一区| 日韩精品一区二区三区视频在线观看 | 国产成人午夜高潮毛片| 26uuu精品一区二区在线观看| 免费观看日韩av| 精品国产一区二区三区av性色| 蜜桃视频免费观看一区| 日韩久久精品一区| 精品一区二区三区久久| 久久伊人中文字幕| 国内精品伊人久久久久av一坑| 日韩欧美国产一二三区| 国产中文字幕精品| 国产精品美女一区二区在线观看| 成人久久18免费网站麻豆| 中文字幕一区免费在线观看| 精品理论电影在线观看 | 亚洲精品欧美在线| 欧美日韩在线亚洲一区蜜芽| 免费观看在线综合色| 久久久精品tv| caoporen国产精品视频| 亚洲精品国产精华液| 欧美精选在线播放| 久久精品国产在热久久| 欧美激情一区二区三区全黄| 91国偷自产一区二区三区观看| 日韩vs国产vs欧美| 国产欧美一区视频| 91国模大尺度私拍在线视频| 捆绑调教一区二区三区| 国产女同性恋一区二区| 欧美日韩中字一区| 国产河南妇女毛片精品久久久|