Well it wasn't as bad as I had feared, but not as simple as I had hoped. And I'm certainly not going to mention the still unsolved mystery of the mm.alchp vectored call that reported success but actually zeroed out an entirely different area of the common heap, thus trashing the in-memory copy of the map!!!!! :(
The driver is now running on a bog standard QL, albeit somewhat painfully. The crappy QL serial port is unfit for use above 4800 baud because it insists upon two stop bits @ 9600 and the USBWiz only sends one. Even if it did send two I doubt if it would work reliably. Really, superHermes is going to be a must . unless you like accessing a USB hard drive at the speed of a 1980s dial-up connection, that is! Public beta 1, code name "Logopolis", is on course to be released on Monday. You will need a USBWiz, RS232 to TTL converter and some kind of regulated 5V supply for the electronics if you want to try it. I will send download links to those who have already volunteered. This has been a long and painful project, fighting every step of the way against cross-platform inconsistencies and serial hardware that was barely fit for purpose in 1984, let alone 2011. I really don't exaggerate when I say that I wish I'd never started it in the first place! For example: Under Minerva with the standard serial hardware you are forced to run the installable Queue Manager add-in, because it can't handle zero timeout serial I/O calls in supervisor mode. This probably happens with JS & JM, too . although I have only tested JM with an Aurora/SGC & superHermes. otoh SMSQ doesn't need the Queue Manager at all, but it can use it as a performance enhancement! SMSQ lets code called from the scheduler do mt.cjob traps, JM crashes if you try and do that. And so on . The higher up the hardware/software tree you go, the better things get. Best configuration is SMSQ on modern hardware with decent high speed serial ports. Ser-USB runs happily under the current versions of QPC2 and Q-emuLator . although, perversely, you will need a USB to serial adapter if your PC doesn't have a built-in serial port! Status: The current version supports SD cards and USB storage devices formatted as native QDOS. Multiple partitions are supported (but as yet there is no partition editor written). There are also hooks for supporting multiple LUNs on USB storage devices but at present no mechanism to mount them. Ser-USB *should* be able to mount any QLW1 format hard drive connected to a USB to IDE adapter, but I haven't had the opportunity to test this. Because all I/O is routed across a single serial connection, the driver is single tasking, non re-entrant, but this hardly affects performance as the biggest hit comes from the serial connection speed. The code is ROM-able, but it's currently too big to fit in a 16K EPROM. Also, it shouldn't be too hard to whip out the USBWiz Operations Layer from the driver and slap in an alternative hardware layer for something other than a Ser-USB at some future date. But that's another story. btw If anyone out there (like, for example, Dave Park) would like to build an SPI interface for the QL that would significantly increase performance! Adrian _______________________________________________ QL-Users Mailing List http://www.q-v-d.demon.co.uk/smsqe.htm