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

📄 enum.asm

📁 DOS下的USB驱动源码,包括UHCI
💻 ASM
字号:
;Compiled with TASM : tasm enum -> tlink enum /t -> enum.com
;
.MODEL TINY
.CODE
ORG 100h
START:               

;set up URB for control transaction
mov urb.transaction_token,2Dh
mov urb.chain_end_flag,0
mov urb.dev_add,1
mov urb.end_point,00h
mov urb.error_code,0
mov urb.status,0
mov urb.transaction_flags,0
mov ax,offset in_buffer
mov urb.buffer_off,ax
push ds
pop urb.buffer_seg
mov urb.actual_length,8
mov urb.buffer_length,8 ;12h
mov ax,offset get_dev_dis
mov urb.setup_buffer_off,ax
push ds
pop urb.setup_buffer_seg
mov urb.start_frame,0
mov urb.nr_of_packets,0
mov urb.int_interval,0
mov urb.error_count,0
mov urb.timeout,0
mov urb.next_urb_off,0
mov urb.next_urb_seg,0

;now call DosUHCI
mov dx,offset urb
int 65h

;output received data to screen
mov  cx,9
mov  di,0
buffer_out_loop:
        mov  ah,02            
        mov  dl,in_buffer[di] 
        push cx
        push di
        int  21h
        pop di
        pop cx
        inc di
loop buffer_out_loop

;terminate program
mov ax,4C00h
int 21h

;data

in_buffer    db 8 dup(0)    

;get_device_descriptor
get_dev_dis  db  80h,06h 
             dw  0100h,0000h,0008h

;define data type of URB
urbstruc struc
  transaction_token db ? ;control, in, out 
  chain_end_flag  db ?  
  dev_add         db ?
  end_point       db ?
  error_code      db ?  ;error codes returned by dosuhci
  status          db ?  ;status byte returned by controller
  transaction_flags dw ?  ;reserved
  buffer_off      dw ?  ;for in/out
  buffer_seg      dw ?  ;for in/out
  buffer_length   dw ?  ;for in/out
  actual_length   dw ?  ;for in/out
  setup_buffer_off dw ? ;for control
  setup_buffer_seg dw ? ;for control
  start_frame     dw ?  ;reserved 
  nr_of_packets   dw ?  ;iso
  int_interval    db ?  ;int
  error_count     db ?  ;reserved 
  timeout         dw ?  ;reserved
  next_urb_off    dw ?  ;reserved
  next_urb_seg    dw ?  ;reserved
urbstruc ends ;32 byte long 

;define urb with this type
urb     urbstruc <> 

END  START

⌨️ 快捷键说明

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