Short: Poseidon USB for Pegasos Update 2.2 Author: hodges@in.tum.de (Chris Hodges) Uploader: hodges in tum de (Chris Hodges) Type: driver/other Version: 2.2 (30-Dec-03) Requires: Pegasos and MorphOS 1.4 Architecture: ppc-morphos Introduction ~~~~~~~~~~~~ The Poseidon USB Stack is a software solution that unleashes the possibilities of the Universal Serial Bus (USB) and the devices with USB interface, ranging from mice, keyboards, tablets, joysticks, printers, scanners, webcams, digicams, flash card readers, zip drives, floppy disk drives, harddisks, memory sticks, ethernet adapters, scanners and audio adapters to less common things like power supplies, GPS location devices or finger print readers. It is intended to be a solution for all systems. This is the MorphOS version with PPC native binaries and the latest Pegasos onboard USB chipset driver. Big news ~~~~~~~~ V2.2 - Major HID class update. Support for joypads, condition codes, scaling, variables, HID output & feature items and much, much more. - Improved massstorage.class. - Various fixes. V2.1b - Fixed subwayusb.device driver. - Fixed massstorage.class. V2.1 - Again, improvements and fixes on the mass storage class. - Improved compatiblity on the highway and subway drivers. - New DRadioTool for GemTek/D-Link USB radios. - New UproarTool for various MP3 Players, but at least works with my Valencia MPX. - Various fixes. V2.0 - Several important bugfixes and changes in many places. - Removed old easter eggs ;-) V1.33 - Minor bug fixing update. V1.32 - Large speed increase for Highway and Subway USB cards! Measured about 735000 bytes/sec on my machine while reading - First public available version of the HID class included! Comes with a very powerful GUI. PLEASE READ THE DOCS FIRST! - New rawwrap.class for use with BetaScan etc. - Added forced bindings in Trident. - Lots of bugs fixed. V1.31 - New GUI's for printer.class, bootmouse.class. - Extended GUI of massstorage.class. - Stack config GUI elements added in Trident. - Massstorage: Now can mount RDB partitions! Added booting from RDB media! - Bootkeyboard: Added experimental wheel mouse support. - Registrations can now be obtained electronically from IOSpirit (www.iospirit.com) also via credit card payment. V1.30: - Trident updated and extended! Now allows to open configuration windows. - Config window for bootkeyboard and massstorage. - LOTS of bugfixes. V1.28: - User licence scheme added. - Pencam VHI driver. - Various fixes. V1.27: - Printer class fix. V1.26: - Mass storage fixed and extended. - New USB Modem class. - UPAR printer mountlist included. V1.25: - German manual and installer script - Fixed the bugs in the installer script that would copy the UMSD file to the wrong drawer (and without icon) - New usb->serial converter class - Mass storage now automounts Changelog ~~~~~~~~~ poseidon.library 2.2 o Querying DA_CurrCfg now calls the USB command to be sure that the current config number is up to date (suggested by Uwe Ryssel). Removed that again, because he reported it to be of no use. o Fixed a race condition for interface and device bindings. Caused some havoc on my Pegasos with four root hubs during PsdRestart. o Added Epson mass storage interface patch for printers with card slots. o Poseidon no longer ignores configurations, if the config was set without error but nevertheless returns a bad GetConfiguration number. Fixes problems with broken Olympus cameras. o Implemented DA_CloneCount. Mounting two devices with exactly the same VendorID, ProductID and serial number will give it a unique clone count number (e.g. required when plugging in two joypads from the very same vendor -- this still allows different prefs for the second one). o Due to popular demand, the "welcome" line has been cosmetically fixed. o Now generates more meaningful names for the device name according to the interface class, if the device cannot say its name itself. o Empty device descriptor strings are now considered to be invalid. Trident 2.0 o More rewriting for subclasses. o Lots of internal changes, I cannot remember. o Lots of fixes for the subwindow handling. o Automatic updating works again. o Reintroduced Poseidon-Logo to USB.mprefs. o Generally, more robust. o Added Online/Offline menu items. Installer script 1.8 o Added spanish installer strings and licence translation courtesy of Dámaso Domínguez. o Small changes for better ArakAttack support. serialpl2303.class 1.8 o Added detection of Sitecom serial adapter (reported by Jens Bagh). rawwrap.class 1.7 o Added default settings for epson scanners, as requested by FelixS. massstorage.class 1.23 o Simple SCSI patchflag now disables geometry scan. o Added two new GUI option for patchflags. o Fixed a misplaced CloseLibrary() reported by jacaDcaps o Improved fssm check as suggested by Heinz Wrobel. o Changed default settings to CMD6->CMD10, no initial reset and simple SCSI. hid.class 1.6 o Restricted assignment of mouse buttons and pointer movement to mouse and tablet items (connecting joypads don't block the mouse anymore). o Raw keymap strings enhanced to be user readable and more friendly. o Added missing keyboard mapping stuff. o Added option to disable all actions. o Added option to show the current values of an item. o Added absolute to relative value translation (i.e. for joypads and tablets). o Added clipping of values. o Added scaling of values. o Added pre-condition codes for actions (you probably do not grasp the power that's behind this tiny line, but just read the manual). o Added input redirection for action values. o Added optional tracking of key events for keyboard mapping. o Generated default actions for joypads. o Added patching of lowlevel.library/ReadJoyPort() for digital joystick emulation (works great on MAME). o Added a button to copy an existing action (might come in handy). o Introduced a new trigger if the value returned was out of bound (needed for hatswitch, stupid stupid design flaw of the HID specs IMHO). o Added default actions for digital pads (hatswitches). o Added default actions for analogue sticks. Warning: if you have got a joypad with hatswitch (digital pad), you need to disable the hatswitch default actions, because they will interfere with the analogue stick handling (or use another port for it? :) ). o Added a column for the current/last value in the items list. It does not get updated automatically, except for the selected item, if you enable "Report current values". o Optimized action updating process when switching between two items (e.g. in track events mode). o Fixed reading of item arrays that were not one or eight bits wide. Obviously, this code was never used (as I did not encounter one device yet that uses arbitarily sized items for an array). o Added output and feature items and actions! Yay! This means you can now toggle the leds on a keyboard, toggle the force feedback (rumble) of a joypad, send out all kinds of data to the device. o Added default actions for caps lock led. o Added a new report/collection with two items to add actions on connection and disconnecting (i.e. variable initialization or sound playback). o Lots and lots of internal changes I cannot quite remember. o Source code for the HID class is now about 450 KB, just to get the picture. o Last Action Hero subtask is now created on demand. This fixes the problems (reported by Hartmut Schulze) of the task not being generated at boot point (FlashRom), due to the lack of some of the required libraries. printer.class 1.17 o Accepts now short packets on recieving without outputting an error message. AddUSBClasses 1.3 o Now searches in MOSSYS:Classes/USB instead of SYS:Classes/USB, if found. AddUSBHardware 1.5 o Added an ALL option. When used for adding hardware, all units are added until one fails. When used on REMOVE, it removes all active USB controller hardware, effectively switching off the stack. AddUSBHardware 1.4 o On removal, checks only the given device name and not the path as requested by Günther Nikl. algorusb.device 1.7 o Fixed a bug with packet size calculation on interrupt endpoints with MaxPktSize != 2^x. Sorry!!! o Optimized interrupt ETD allocation. Turned on immediate interrupts for all endpoints. This should stop the performance loss some people have reported when connecting hubs. PsdDevlister o Now also returns IDStrings for Devices and Interfaces. o Properly reports Application Bindings. o Outputs a google search line ;) o Replaced printf by Printf (smaller binary). --------------------------------------------------------------------------- Trident 1.5 o Large rewrite for USB.mprefs for MorphOS. Some features were missing, such as automatic updating. subwayusb.device 2.7 o Fixed a stack overflow condition due to the increased memory usage and a local dummy struct in the OpenUnit() code. o Fixed a problem with the interrupt code (introduced probably with V2.5 or V2.6). massstorage.class 1.21 o Mode page reading routine rewritten. o GetGeometry completely rewritten. Fixed several bugs. Returns now nice values for all kinds of missing values. o Detects write protection change even if no disk change occurs. Contact address ~~~~~~~~~~~~~~~ Any mail, comments or donations welcome: Chris Hodges Account: 359 68 63 Kennedystr. 8 BLZ : 700 530 70 D-82178 Puchheim Bank : Sparkasse Fürstenfeldbruck Germany Tel.: +49-89/80001543 WWW: http://www.platon42.de/ Email: hodges@in.tum.de IRC: platon42 on EfNet