⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reset.pas

📁 DOS下的USB驱动源码,包括UHCI
💻 PAS
字号:
Program reset (output);

{This sample issues a reset to DosUSB for device "dev_add". Since new
 devices will not be enumerated, all device addresses are unchanged.}

Uses
   dos;  {defines "registers" type & "intr" call}

Const
   control_token = $2D;
   in_token = $69;
   out_token = $E1;
   command_token = $FF;

Type
   URB_type =
      packed record
         transaction_token : byte; {see token values above}
         chain_end_flag  : byte; {1 = another URB follows this one in memory}
         dev_add         : byte;
         end_point       : byte;
         error_code      : byte;
         status          : byte; {returned by dosuhci}
         transaction_flags : word; {reserved}
         buffer_off      : word; {for in/out}
         buffer_seg      : word; {for in/out}
         buffer_length   : word; {for in/out}
         actual_length   : word; {for in/out}
         setup_buffer_off : word; {for control}
         setup_buffer_seg : word; {for control}
         start_frame     : word; {reserved}
         nr_of_packets   : word; {reserved - iso}
         int_interval    : byte; {reserved}
         error_count     : byte; {reserved}
         timeout         : word; {reserved}
         next_urb_off    : word; {reserved}
         next_urb_seg    : word; {reserved}
      end; {record, 32 bytes long}

Var
   urb : URB_type;
   regs : registers;

Begin {reset}
   {set up request}
   regs.AX := 1; {reset command}
   urb.transaction_token := command_token;
   urb.dev_add := 0; {device number, 0 = all}

   {now call DosUHCI}
   regs.DS := seg(urb);
   regs.DX := ofs(urb);
   intr($65, regs);

   writeln;
End. {reset}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -