Short: Poseidon USB Stack Update 1.31 Author: hodges@in.tum.de (Chris Hodges) Uploader: hodges@in.tum.de (Chris Hodges) Version: 1.31 (05-Oct-02) Type: hard/drivr Requires: a compatible USB card 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. Big news ~~~~~~~~ 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 1.31 o Added stack config support. Trident 0.12 o Added stack config stuff. o Misc changes. hub.class 1.17 o Fixed a bug where the hub task wouldn't neccessarily fail out from the outer loop on hub removal. bootmouse.class 1.11 o Added experimental quick & hacky wheelmouse support. Will probably only work with a few mice (the ones that report wheel movement in byte 4 even with boot protocol enabled -- works with my Sigma mouse, doesn't work with my Logitech wireless desktop (no wheelmouse data in boot protocol). Be sure you have MUIWheelPatch installed. o Added class (defaults) and binding GUI to enable wheelmouse support. massstorage.class 1.15 o Booting from RDB implemented (added a flag for this in the GUI aswell). Thanks to Ralph Schmidt for contributing the CreateSegment() code. o Misc internal changes. o RDB Mounting added. Now RDB formatted partitions will be mounted automagically on media insertion aswell. o Mounting is not done from the device task anymore (as this could cause a deadlock, if the filesystem wanted to do device IO before returning from the mount call), but from a tiny seperate task, living only for the moment :) o Changed implementation of FIX_INQUIRY to fake inquiry. Old fix inquiry is still present for wrong inquiry requests. Fake Inquiry should fix a lot of broken devices. o Added option to disable the initial bulk reset, as some broken devices seem to choke on it (and crash their firmware, stupid thing). o Changed NakTimeout prefs value from ms to 1/10secs. This seems more reasonable. Please check your configs. o Added option to delay the device startup. This is needed for some broken devices, which crash their firmware, if they receive commands during their setup (Nikon Coolpix). o Added possibility to change the DOSType. If the DOSType is NOT 0x464154xx (FATx), LowCyl will not be 0 and autodetection of FAT95 will be disabled. This should allow the use of CrossDOS, but this has not been tested. o Added saving of default prefs. o Added default prefs GUI (class config). printer.class 1.14 o Added implementation of CMD_START/CMD_STOP. o Added class GUI with two options: one disables the sending of the init sequence on Epson printers, the other one disables the SOFT_RESET command which causes problems on some broken printers. --------------------------------------------------------------------------- poseidon.library 1.30 o psdFreeVec() was broken (freed 4 bytes less than allocated). I am really sorry about this. Pfuschwork orange. o Added class config reading and writing. o Added interface/device config reading and writing. o Added some more support functions to the library. o Internal variables/flags added for USB2.0 support (although, there is no working USB2.0 support right now). o Added NAK timeout (5 secs) on EP0 while enumerating, as there seem to be badly broken devices out there, doing NAKs forever, blocking out the stack until the device is removed again. o There were some global fields in the library data section which caused LoadModule by THOR to remove the resident tag because the checksum was wrong. Hopefully, this is now fixed. o Licence check was broken. I forgot an if-clause, which caused the single user keyfile being killed after the verification (i.e. click on online/offline/online and you were back to demo version). Sorry to Mediator users. Trident 0.11 o Added calls to open class config windows. o Fixed some gadgets in device window not being ghosted. o Added 'Settings' gadget in device window. o Added speed output of USB 2.0 highspeed devices (no support in the stack, yet). o Added calls to open binding config windows. o Added some gadgets in device info window. o Increased stack to 16KB as it was nearly running out of stack. all classes o Lots of internal changes to be more extensible (via a DoMethod vector). o Changed classes to use the new FindEndpoint and FindInterface support functions. Saves a few bytes, makes classes more robust. o Bailing out code introduced with release V1.27 was broken and would always have crashed the machine on failing allocation. Fixed. massstorage.class 1.13 o Bugfix: With a device with multiple LUNs, Permit() was called more often than Forbid(). Could have caused all kinds of havoc. Fixed. o Data overflow is now being ignored in the data phase. This fixes some broken devices. o Added device config GUI. I hope you enjoy it. If there's something missing, please let me know. Remember that automounting of RDB partitions still doesn't work, even if there's a switch already. o On response timeout errors and multiple LUNs, access to unit could be locked, hanging the other LUN tasks. Stupid bug, which is now fixed. o CB/CBI recovery handling didn't work in some cases. o Added CBI_RESET (maybe this helps?). bootkeyboard.class 1.9 o Added class config GUI. The configuration settings include turning on/off of ResetHandlers, setting the time until the machine reboots (in case of resethandlers installed) and an alternate caps lock mode. o Added ISA keymap option, aswell as an option to disable the extra key translation functions (like page up/down). o Extra key translation did not send events for up-qualifiers, therefore shift (or amiga or control) were still pressed after using keys like page up/down. Fixed. highway.device subway.device o Fixed a possibly wrong PPC gate function. 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