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.
Syntax:
USBSUPT1 [Options]
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
information.
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
pleasure.
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
hexadecimal.
If you leave number(s) out, ALL possible values will usually be
displayed.
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
#IProtocol
DescriptorType #Type
Vendor #Vendor
Descriptor #Segment:#Offset #HostIndex #DvcAddress
HID (HUMAN INTERFACE DEVICE) DESCRIPTORS:
PhysicalBias #Bias
PhysicalDesignator #Designator
PhysicalQualifier #Qualifier
PhysicalDescriptor #Segment:#Offset
ReportCollection #Collection
ReportDelimiter #Delimiter
ReportTag #Tag
ReportDescriptor #Segment:#Offset
UsagePage #UsagePage
Usage #UsagePage #Usage
OTHER/MISCELLANEOUS:
Aliases
Country #Country
Language #Language
Dialect #Language #Dialect
StringLanguage #StringLanguage
Int14Structure #Segment:#Offset
ControlPacket #Segment:#Offset
Int14ErrorCode #Int14ErrorCode
TDStatusCode #TDStatusCode
Comments:
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
functional).
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
equivalent:
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:
USBSUPT1
For more information see:
https://gitlab.com/FreeDOS/drivers/usbdos/-/tree/master/DOC/DOSUSB
OR:
C:\FREEDOS\DOC\usbintro.doc (too big for edit, please use
another editor, e.g. Blocek!)
OR:
https://bretjohnson.us/
Examples:
usbsupt1 country 09h
See also:
boundtst
drives
errorlevel/exitcodes
hidsupt1
inklevel
irq
ps2mtest
scantest
thrust
uni2asci
usbdevic
usbdos
usbdrive
usbhosts
usbhub
usbjstik
usbkeyb
usbmouse
usbprint
usbuhci
usbuhcil
vendorid
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.