Short: ANAIIS USB Stack Release 1.24 Author: Gilles Pelletier Uploader: gilles pelletier live fr (Gilles Pelletier) Type: driver/other Version: 1.24 (30-Sep-2024) Requires: USB uhc124 chip compatible card or another supported usb hardware Architecture: m68k-amigaos Introduction ~~~~~~~~~~~~ ANAIIS, acronym for Another Native Amiga IO Interface Stack, is a software solution that brings the possibilities of the Universal Serial Bus (USB) to the Amiga. Supported harware: ZorroII E3B Highway clockport E3B Subway clockport Alinea Subway 2021 ZorroII Freeway, clockport Freeway A600/A1200 Gayle clockport At minimum, you need: - an Amiga 68000 at 7.09MHz (PAL or 7.16MHz in NTSC ;) ) - a supported hardware - some RAM (100 Ko for a mouse and a keyboard) - should operate from WB1.1 to AmigaOS4.0 (680x0 cpu required). ANAIIS, Another acronym with hidden parts: Native because it is all written in C language (some parts are in Assembly). Amiga because this computer worths this kind of program. Input/Output because it works for mice, keyboards, thumbs and printers. Interface because it translates usb transactions into Intuition events. Stack because this kind of program is called like that. ANAIIS controls internaly : - (9,0,0) alias hub - (3,1,1) alias keyboard (boot keyboard) - (3,1,2) alias mouse (boot mouse) and externaly: - (7,1,1), (7,1,2) alias printer (uni and bi-directional) - (8,6,80) alias massstorage (bulk only with embedded scsi commands) SATA disk, sticks, keys, thumbs, card readers... - (3,0,0) vendor=0x044f 1103 product=0xb320 45856 ThrustMaster (joypad with rumble) - all external program by using a Sirion like API * any interface driver for Sirion 1.3 * pl2303 vendor=0x067b 1659 product=0x2303 8963... A graphic user interface is given to control the stack (Anaiis). You can also control it via a CLI command: * usbctrl start * usbctrl refresh * usbctrl reset * usbctrl stop You can send files to printer with the usbprint command. A redirection helper translates parallel.device unit 0 into ieee1284.device. You only need a compatible printer driver to print via standard system. (i.e. Deskjet560C for HPSC2210, or a PCL compatible driver) External programs can be used with ANAIIS stack, such HID (extra buttons), ThrustMaster (joystick with rumble) and massive (keys with (8,6,80) interface). These programs are not delivered with this package. For games, demos or some tools, you must keep original mouse and keyboard. ANAIIS translates usb transactions into system events, so programs that use hardware directly won't work. ANAIIS is not yet resident and doesn't survive at boot time. Tested with success with Brilliance, Deluxe Paint, Aegis Sonix, Ced (I wrote this text with it :) ) most of well written Workbench tools. The Settlers, Indy4 (and the fate of Atlantis) work fine... It is possible to plug and unplug devices without reseting the stack. But be careful with disks. Requirement & Installation ~~~~~~~~~~~~~~~~~~~~~~~~~~ See Install.readme file. Future ~~~~~~ - Improve gui. - Improve speed and reactivity. Known Bugs ~~~~~~~~~~ - gui crashes on 68000 + ucode and utf_8 catalogs Steps ~~~~~ V1.24 30-Sep-2024 Fix massive for fat95 22-Sep-2024 Fix APB_FindUSBFDInternal 13-Aug-2024 Fix WriteJoyPort 31-Jul-2024 Fix load for specific vendor:product fd driver 01-Jul-2024 Subway should be faster... 23-Jun-2024 Fix Massive TD_64 (scsi.io_Actual value never copied into io_Actual) 17-Jun-2024 Traces 12-Jun-2024 TD_EJECT 05-May-2024 Fix unmount on 3.1 and upper versions (lock/unlock DOSBase issues) 23-Apr-2024 Fix Massive for most usb keys 04-Mar-2024 Fix hub with more than 4 ports 18-Feb-2024 Add LoadRDBFS option for massive (crashy thing) 12-Feb-2024 Wood dragon version 09-Feb-2024 StartDrivers changes 07-Fev-2024 remove c.o for massive (bug with output, keeping the cli open with WB1.3) 27-Nov-2023 CDFS/AmiCDFS 26-Aug-2023 CD/DVD V1.23 31-Jul-2023 Install script for FD and fdclasses 30-Jul-2023 Automatic activation of FD drivers 29-Jul-2023 TheMouse is ok, TheGamepad still not 17-jul-2023 Hub status and port status 13-Jul-2023 Fix assembly Subway code 10-Jul-2023 FD drivers 21-Jun-2023 A600/A1200 Gayle clockport (not tested) 14-May-2023 Fix load/update/save prefs 23-Apr-2023 NTSC mode 13-Apr-2023 Another mouse with epsize at 8 13-Mar-2023 Fix a guru#3 on 68000 at start 27-Feb-2023 callfunction, an adempt to load Sirion 1.3 drivers 26-Feb-2023 rMouse.usbfd driver 30-Jan-2023 First call of a Sirion 1.3 function: bootmouse.usbfd 16-Jan-2023 Water rabbit version V1.22 27-Nov-2022 Install script updates 20-Nov-2022 HID PlayHID fixes 07-Nov-2022 Install script (WB 1.3 and up) 01-Nov-2022 Freeway clockport detection (Subway, Subway 2021, and FreewayCP) 29-Oct-2022 Readme fixes 28-Oct-2022 Mouse with epsize at 8 23-Oct-2022 Freeway detection 19-Sep-2022 CrossDosFileSystem SuperFloppy mode 05-May-2022 Adapt massive to work with sirion 1.3 15-Feb-2022 Bump rev, cleanup 30-Jan-2022 Water tiger version 16-Jan-2022 Add clockport addresses ($d88001,$d8c001,$d84001) V1.21 31-Jul-2021 Reactivate traces 23-May-2021 SAS/C 6.58 makefile (suppress optimizations) 21-May-2021 Subway 2021 (you read it "Subway 2021") 20-May-2021 Bump rev + experimental things 12-Feb-2021 Metal ox version V1.20 11-Nov-2020 Pangolin version (never released) V1.19 31-May-2020 DumpX V1.18 18-Dec-2018 Bump rev 10-Sep-2018 NSD commands 24-Apr-2018 68080 detection 27-Dec-2017 PeekQualifier for WB 1.x V1.12 14-May-2017 Fix FFS unmount 11-Apr-2017 remove unused strings resident 80368 -> 61496 bytes usbstart 79844 -> 61708 bytes 26-Mar-2017 try to mount an already mounted partition (by changing the first letter) 20-Mar-2017 Bump rev V1.11 09-Mar-2016 ObtainSemaphoreShared and AttemptSemaphoreShared 05-Mar-2016 Save prefs guru fixed 03-Mar-2016 Load usbhcd in a more compatible way... 03-Feb-2016 cli window still open on WB 1.x 20-Mar-2015 Tests 01-Jan-2015 Issues... 30-Dec-2014 Unmount issues... 29-Dec-2014 Bump rev V1.10 10-Feb-2014 Add XSurf (0x1212:0x0017) clockport(s) detection 08-Jan-2014 Fix internal function pointers 21-Dec-2013 Expansion.library 09-Dec-2013 Fix issue with input and lowlevel.library (right and left click) 08-Dec-2013 Bump rev V1.09 10-Oct-2013 Reset proof ! 29-Sep-2013 Tests 26-Sep-2013 Fix info_13 (unit name and volume name) 25-Sep-2013 Fix colors for 2.04 and menus 21-Sep-2013 Fix massive for 1.2 (mount DOS) 19-Sep-2013 Bump rev V1.08 06-Apr-2013 Fix reset for Highway (sometimes don't start) Add usbctrl command (usbctrl start will launch anaiisresident.library) 24-Mar-2013 Lights numlock led at start (keyboard) 18-Feb-2013 Fix USBEPGetDescriptor 11-Feb-2013 Wheel up and wheel down are inverted 04-Feb-2013 Bump rev V1.07 02-Feb-2013 Function Driver names Advanced mode... 27-Jan-2013 Cosmetic changes Add libusbx support for WinUAE/Windows 12-Jan-2013 Fix iConfig and iInterface unicode strings 05-Jan-2013 Add usbctrl command (usbstop and usbreset in a single command) 02-Jan-2013 Remove the spanish catalog (after a complaint to the Aminet administrator) Lo siento por las pequeñas y los pequeños usuarios de ANAIIS. Para consolarla, le añadí otros idiomas. Be careful 'Advanced mode' freeze all stuff... you have been warned 27-Dec-2012 Fix guru 4 (deluxe paint IV, about...) 16-Dec-2012 Ajust enumeration timing (too fast now) 15-Dec-2012 Rewrite all core for Subway in 680x0 assembly 08-Dec-2012 Rewrite all core for Highway in 680x0 assembly Remove some unused functions Bump rev V1.06 11-Nov-2012 Fix issues with PFS3 all in one. 16-Oct-2012 Add utf_8 and compose for ucode. 08-Oct-2012 Swap alt and amiga keys Add anaiis.cd for the brave translators :) 22-Sep-2012 Add catalogs (with translation bugs... :) ) 15-Sep-2012 Avail flush can remove anaiis libraries (it's bad!) 18-Aug-2012 Add install menu 05-Aug-2012 Bump rev 18-Jul-2012 Add libusb support for WinUAE V1.05 28-May-2012 Fix Massive detection delay. Now massive can be launched before the stack 27-May-2012 Fix Highway and subway detection 20-May-2012 Open icon.library only when it's necessary 15-Apr-2012 Fix delay recovery into massive 13-Apr-2012 Fix lowlevel into input stuff 04-Mar-2012 Test program for lowlevel_ext (rumble) 21-Feb-2012 info_13 for c:info replacement V1.04 18-Feb-2012 Fix SetAddress (gimme more chance) 16-Feb-2012 Fix hub display on gui (spaghetti form...) 14-Feb-2012 Fix Massive 29-Jan-2012 Cosmetic changes on interfaces (info & detach) 25-Jan-2012 Fix potential bug on windows 24-Jan-2012 Fix notifications (bad message) 08-Jan-2012 Fix Mount/Unmount with WB1.3 04-Jan-2012 Subway detection at 0x00d80001, 0x00d90001 (A604) 01-Jan-2012 Fix hasardeous thing with timeout/partial BULK IN request Bump rev V1.03 25-Dec-2011 PTP don't work at all... 11-Dec-2011 Fix Taskpri (now, mouse and massstorage can mix transactions) 28-Nov-2011 Fix DumpX gui (edit/cursor/save/tests) 26-Nov-2011 Fix (BULK IN/BULK OUT/INT) thumbs. 19-Nov-2011 Ignore automount set to false partitions 11-Nov-2011 Command line for massive was disabled... 09-Nov-2011 Add a semaphore in massive, to prevent damages. 06-Nov-2011 NAK issue (not an error, but normal busy device) 19-Oct-2011 MaxTransfer and Mask. Wait delay. V1.02 28-Sep-2011 Detach notification from GUI 22-Sep-2011 USBGetStackAttrs was wrong (A0 instead A1) 24-Aug-2011 Add SFS... (not working with 68000) 02-Aug-2011 Add RDB partition decoding and mount/unmount 26-Jul-2011 Fix usbscsi.device and FFS crashes 17-Jul-2011 Cosmetics in DumpX V1.01 15-May-2011 Fix Massive, mount goes nearly fine 14-May-2011 Changes in uhc124 core 15-Apr-2011 Fix Function and Interface dependence (claim & declaim) 08-Apr-2011 Fix Massive 4GB startup (sometimes fails) Add menus in DumpX. 29-Mar-2011 Add 64 bit routines (Add, Sub, LShift, RShift, Divu, Mulu). V1.00 18-Mar-2011 Fix Anaiis hangup (notify never removed) Fix ieee1284.device, now it prints! Fix Massive, now all keys should work (up to 4GB) Be patient, a 4GB key takes 5 minutes to mount ;(, but after, you can copy! (fat95 limitation?) Bump rev V0.99 07-Mar-2011 Fix port 4 detection, fix grap of hubs removal Massive can mount/unmount devices and the speed has passed from 3500B/s to 6500B/s Too lazy to bump the revision ;) 06-Feb-2011 Massive ! 09-Jan-2011 Fix speed issue (keyboard wont SetAddress). 17-Nov-2010 Stack issue (CLI only, set stack 8000 before launching). 02-Nov-2010 Cosmetics in GUI. 14-May-2010 GUI now works with WB1.1. 11-Apr-2010 Mighty crash when closing fixed. 23-Mar-2010 GUI improvement (fusion of usbstat + anaiis) 07-Mar-2010 Remove all demo code (all is in demo.usbhcd now) 27-Feb-2010 DoIO for usbhcd interface. 21-Feb-2010 Reduce code, Anaiis gui goes from usbstat now 18-Feb-2010 Can load external drivers (#?.hcd or #?.usbhcd) 04-Feb-2010 Bump rev V0.98 15-Oct-2009 registers everywhere (Thanks Cosmos) 15-Jun-2009 GUI improvement (sliders + values) 22-Apr-2009 playHID improvement (HID decoding!? still in progress...) 18-Mar-2009 playHID fixes, hope it works better (Thanks Cammy) 15-Mar-2009 usbstat fixes (Thanks Raziel for testing it on OS4.1) 13-Mar-2009 Localization in french (the file was missing...) 22-Feb-2009 Bump rev, plug and unplug working fine with notification. V0.97 15-Feb-2009 Fix lowlevel.library keyboard, dead keys. 07-Feb-2009 Fix some desastrous bugs in 1.1 and 1.3 Fix USBEPGetDescriptorA 05-Feb-2009 anaiisprivate.library 21-Dec-2008 ieee1284.device is now fully compliant with USBSysBase. 14-Dec-2008 Safer traces (remove references to DOSBase, simple tasks like devices don't call DOSBase API) 30-Nov-2008 Less size. 20-Nov-2008 Keyboard led report and printing are now working correctly. capslock, numlock, scrolllock=>help. 11-Nov-2008 Remove maybe hub crashes, now build complete interfaces. 31-Oct-2008 Remove possible endless wait (speed up the mouse!). 20-Oct-2008 Notification now working. 05-Oct-2008 usbresource.library or anaiisresource.library. 21-Sep-2008 Add semaphore protection, printing is desactivated. 18-Sep-2008 Early version... 26-Jul-2008 Cosmetic changes 20-Apr-2008 Localization 15-Mar-2008 PANDORA (usbsys.device or anaiis.device) 14-Feb-2008 Boost core code (registers use, global optimizer) Device vector is now anaiis.device. V0.96 10-Feb-2008 Fix Highway ugly bug, due to a wrong and looooong code generation. Silly compiler and lazy coder... 21-Jan-2008 OS4.0 Mousewheel? what!? Yes for Subway and OS4.O under 68000 emulation. Core modification, standard message structure for future use. V0.95 13-Jan-2008 Add Host+manufacturer+product+offset for clockport base address. V0.94 23-Dec-2007 Fix Subway detection that sometimes fails. Many thanks for the brave beta testers! 18-Dec-2007 some little GUI improvement. V0.93 15-Dec-2007 Subway now works with ANAIIS! 12-Dec-2007 Merge code for Highway and Subway. 02-Dec-2007 Printing doesn't work... V0.92 18-Nov-2007 Most hub will work now. I have implemented 2.0 mode, but old 1.1 style doesn't work. Now it fixed. 23-May-2007 Additional code to simply manage mousewheel. ANAIIS will send 0x7a for up, 0x7b for down, 0x7c for left and 0x7d for right, as keyboard events. Strange for a mouse! Strange multiselection: Qualifiers key was wrong on repeat state, but good on key up and key down. I use inputdev tool (Robert A. Peck 1985) to check that. Now you can move cursor with keyboard keys: lalt+window key = lalt+lamiga = left click. ralt+context menu = ralt+ramiga = right click. window key+cursor up = lamiga+up = mouse move up. window key+cursor down = lamiga+down = mouse move down. window key+cursor left = lamiga+left = mouse move left. window key+cursor right = lamiga+right = mouse move right. V0.91 13-May-2007 WB1.3: suppress ugly console windows. V0.90 09-May-2007 First working release. V0.10 10-Jun-2006 Mouse!! Contact address ~~~~~~~~~~~~~~~ Any mail, comments, suggestions, documentations are welcome! Please send a mail with the title "ANAIIS" at the following mail address gilles dot pelletier at live dot fr Enjoy USB on old classic Amiga. And remember: Only Amiga makes it possible!