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

Reply via email to