An anonymous reader writes "More than 10 years ago, I was very interested in this new thing called USB and the UHCI controller. I wanted to write my own code for good old DOS to allow the use of this controller. At the same time, I thought it would be interesting to write a book on the subject. However, as time passed, the interest in the book was lost.
Later when the EHCI controller and then the new xHCI controller was introduced, my interest in USB and these new controllers was re-ignited along with the long lost book. After spending months of research and work, the book was finally ready for those of us that enjoy the hardware side and how to program it. The book, though I admit, may not be the best grammatically written book, is very easy to follow. (English was not my favorite subject in school).
The book was written for the USB neophyte who is interested in learning the ins and outs (pun intended) of USB hardware programming, has many data examples, tables, code examples, and memory dumps, and is written as if the reader has never seen a USB device, let alone programmed for one.
It shows how to create a USB stack and schedule for all four major controllers, how to send and received control/int/bulk data to/from devices such as mice, keyboards, thumb drives, and external hubs, all without using any services from the operating system, except for memory allocation and the such.
As I was finishing this book, all I could think about was why didn’t I do this a long time ago. I much enjoyed the research and development of this book. Many fans even helped by sending in their feedback to the pre-release tests I asked for, and many manufactures even granted my requests for hardware, both controllers and peripherals, as I have thanked them all through out the pages of the text.
Finally, sales for the first year well exceeded any expectations that I ever dreamed of. I appreciate all of those who contributed and all of those who have purchased a copy. It has been a wonderful experience.
Benjamin David Lunt"
Link to Original Source