On Tue, 08 Jan 2002 10:36:08 -0500, Phoebus R. Dokos wrote:

> Just my two cents....
> (and pardon my cluelesness in many parts)
> 
> Just got the QDOS/SMS reference manual and begun (thanks partly to the work 
> of Norman with assembler and the good contributions of every savant one in 
> the list) to understand roughly a little more on how SMS works. Based to 
> all Thierry did with the ATAPI drivers

The ATAPI thing is only responsible for the ATA/ATAPI protocol layer, it
does not implement anything directly related with filesystems; it is only
responsible for sending and receiving ATAPI packets (as well as a few ATA
commands) to the ATAPI-compatible devices on the ATA-IDE interface (either
the ISA I/O board of the Q40/Q60 or the Qubide board of SGC-based systems).
BTW you may use it from either assembler, SBASIC or even C (I will also
write a small C library for it)...

OTOH, the CDROM thing (which is still in embryonic state for now) is
responsible for the standard SMSQ/E filesystem API implementation (the
TRAPs #2 and #3), provides support for reading data from a CD-R (on a
direct access basis), and _will_ provide full facility to plug filesystem
support modules in it (ISO-9660 and its extensions, namely Joliet and
Rockridge, as well as packet-CD filesystem): I will probably write the
ISO-9660 pluggin myself as well (and then perhaps another programmer will
follow my steps and implement other extensions/filesystems pluggins)...

> wouldnt it be possible to go a 
> similar way (and by reusing as much of Thierry's code - no use of 
> reinventing the wheel!) and provide an interface for ALL devices under SMS?
>
> The way I think about it if a Device Driver API (along the lines of the 
> Meta devices proposed by Nasta) was implemented as a thing it would be 
> possible to trap all IOSS functions and translate them to something a 
> device would understand and vice versa.

What could be done under SMSQ/E is something similar to QVFS (which was
written by Hans Peter Recktenwald) but that would use all the standard
SMSQ/E TRAPs (QVFS did not, by design and because it was to run on QDOS
as well: the DELETE system call could therefore not be implemented and
had to be supported by a special TRAP #3 call). Using things and a more
memory based approach (for example QVFS was using a file to define the
"mount points": IMO this should be held in memory and "(un)mounts" should
occur via an extension thing call), this could give you support for UNIX
naming conventions on all filesystems (including old ones), with long
filenames support (as well as soft links) while preserving the backward
compatibility with software using the QDOS file naming convetions (i.e.
it would still be possible to access the QDOS filesystems directly).

Note that there is no need to change the API (TRAPs) to obtain this dual
compatibility...

This is one of the projects I have but I never found the time to implement...
Note that I did _think_ a lot about it though and got most of the solutions
to the problems such a thing/device driver raises.
See also the old discussion we had in this list with Richard about non-
blocking TRAP #2 calls...

> This API (?) Thing could be linked as a module to SMSQ/E

No need for this, it could just be loaded at boot time as any thing/device
driver. Its actual (de)activation could be made via an extension thing call
(i.e. a standard extension thing call in assembler, a new keyword in SBASIC,
a new library function in C, etc...).

> together with a UN*X-like filesystem driver written for it

In fact it would INCLUDE the UNIX to QDOS file naming translation... no
need for a new UNIX filesystem.

> and provide at the same time the much needed fs update and a method of
> adding devices logically (I find that the UN*X like approach of devices
> being part of the filesystem extremely useful).

Yes, see the "mount" discussion above... Note that even newer device
drivers/filesystem (such as the future CDROM/ISO9660 one) which already
understand the UNIX naming convention could still be "mounted" (with a
"do not translate" flag)...

> Additionally it could standarise device driver creation by setting 
> a uniform all-encompassing standard for device driver writing.

This is another story !!!... and another thing (in fact a vector collection
to be glued into an extension thing) to write !

QDOS/SMS forever !

Thierry.

Reply via email to