Command: usbsupt1

  USBDOS is a collection of different USB drivers and tools:
  USBSUPT1 is designed as a Support Program, to be called from
  "inside" some of Bret Johnsons other USB-related Programs.


  USBSUPT1 [Options]


  This program is designed as a Support Program, to be called from
  "inside" some of Bret Johnsons other USB-related Programs. Because it
  is designed to called from "inside" another program, it does not have
  all of the nice things that a "real", stand-alone program should have.
  However it does contain a lot of useful/interesting tidbits of
  I should warn you that if you're not pretty familiar with the technical
  details of how USB is organized, this information may actually confuse
  you more than it helps you, but it's still there for your viewing
  If the Option asks for number(s) to be entered (#), they can generally
  be entered in decimal (0-65535) or in hexadecimal (0h-FFFFh). The
  exception to this is #Segment:#Offset, which must ALWAYS be in
  If you leave number(s) out, ALL possible values will usually be
  If running from inside another program (if not running from the command-
  line), the number(s) can be followed with a hex call-back address
  (#Segment:#Offset) to which the output will be written.

GENERAL USB DESCRIPTORS (Device, Config, Interface, EndPoint):
  DeviceClass       #Class
  DeviceSubClass    #Class #SubClass
  DeviceProtocol    #Class #SubClass #Protocol
  InterfaceClass    #Class
  InterfaceSubClass #Class #SubClass
  InterfaceProtocol #Class #SubClass #Protocol
  DeviceDescription #DClass #DSubClass #DProtocol #IClass #ISubClass
  DescriptorType    #Type
  Vendor            #Vendor
  Descriptor        #Segment:#Offset #HostIndex #DvcAddress

  PhysicalBias       #Bias
  PhysicalDesignator #Designator
  PhysicalQualifier  #Qualifier
  PhysicalDescriptor #Segment:#Offset
  ReportCollection   #Collection
  ReportDelimiter    #Delimiter
  ReportTag          #Tag
  ReportDescriptor   #Segment:#Offset
  UsagePage          #UsagePage
  Usage              #UsagePage #Usage

  Country        #Country
  Language       #Language
  Dialect        #Language #Dialect
  StringLanguage #StringLanguage
  Int14Structure #Segment:#Offset
  ControlPacket  #Segment:#Offset
  Int14ErrorCode #Int14ErrorCode
  TDStatusCode   #TDStatusCode


  USBSUPT1 is the main support program for this USB software package.
  It's main purpose is to "translate" the various cryptic USB code
  numbers and data structures (of which there are many) into a format
  that you (as a human being) can understand. While USBSUPT1 can be used
  as a standalone program, it's actually designed to be called by other
  programs, such as the various DOS USB drivers. USBSUPT1 is able to
  translate many of the things that are common to several USB programs.
  By putting the "common" things that several programs use into one place,
  it makes each individual program smaller and makes it easier to update
  the entire architecture.
  USBSUPT1 does not actually provide all of the support functions itself,
  however. USBSUPT1 at times itself calls other "sub-support" programs,
  which may be specific to a certain class of USB Device or Interface or
  Vendor, or some specialized function that is complicated or data-
  intensive enough to warrant a separate program. For example, HIDSUPT1
  (described at page 180 of USBINTRO.DOC, see links below) is a support
  program specifically dedicated to USB Human Interface Devices (mice,
  keyboard, joysticks, etc.), and UNI2ASCI (described at page 181 of
  USBINTRO.DOC, see links below) translates Unicode strings into ASCII.
  USBSUPT1, and the entire set of USB support programs in general, is
  incomplete. There are many kinds of USB devices that will need
  specialized support programs, assuming DOS device drivers are ever
  developed for them. For instance, USBSUPT1 currently contains some of
  the translation data it needs for USB Audio Device/Interfaces
  (microphones, speakers, equalizers, etc.), but does not contain all of
  them. I was actually working on this several months ago, but decided it
  would be better to distribute the USB package as it is (incomplete but
  Because USBSUPT1 is designed to be called from other programs, it does
  not contain many of the "nice" features that many of the other programs
  have (lengthy lists of Aliases, ErrorLevel tables, environment variable
  support, etc.). Nonetheless, you can use it as a standalone program to
  translate specific codes or display lengthy tables of data for various
  USB related items. Playing around with USBSUPT1 should provide lots of
  interesting information to you (assuming you like to play around with
  that sort of thing), but if you're not already pretty familiar with the
  USB architecture and terminology and structure of these DOS USB driver
  programs, it may confuse you more than it helps you.
  Since the main purpose of USBSUPT1 is to translate USB codes (numbers)
  into something understandable, you many times need to provide some sort
  of number (or numbers) to USBSUPT1. USBSUPT1 will generally accept
  numbers in either decimal or hexadecimal format, with hexadecimal
  numbers indicated by an "h" at the end. For example, the following are
    USBSUPT1 Country 10
    USBSUPT1 Country Ah
  Usually, if you don't provide a number at all, USBSUPT1 will display the
  entire list of appropriate codes. For example, to display the entire
  list of Country codes (rather than a single one), you would do:
    USBSUPT1 Country
  There are certain options where USBSUPT1 does not translate a simple
  code number, but rather translates an entire structure or descriptor or
  set of descriptors that are stored somewhere in memory. What must be
  provided to USBSUPT1 in this case is a memory address, in Segment:Offset
  format. When providing a memory address, however, the numbers are
  ALWAYS assumed to be in hexadecimal format, even if they are not
  followed by an "h". For example, the following are equivalent:
    USBSUPT1 ControlPacket 1234:5678
    USBSUPT1 ControlPacket 1234h:5678h
  We will not list here all of the different types of things that USBSUPT1
  will display. To display the list, you can simply type "USBSUPT1" at
  the command line with no options at all:

  For more information see:
    C:\FREEDOS\DOC\usbintro.doc (too big for edit, please use
    another editor, e.g. Blocek!)


  usbsupt1 country 09h

See also:


  Copyright © 2007-2009 Bret E. Johnson, help version 2023 W. Spiegl.

  This file is derived from the FreeDOS Spec Command HOWTO.
  See the file H2Cpying for copying conditions.