Re: [ql-users] Re: Q40/Q60 device drivers

2001-07-01 Thread Richard Zidlicky

On Wed, Jun 27, 2001 at 06:06:17AM +0100, Dave Walker wrote:
 
 My DiscOVER can already read CD's if it can get direct sector access  (it
 can also handle DOS format hard disks if the same can be done).
 Unfortunately it appears that none of the current emulators give this level
 of access to the native media on which their QXL.WIN file systems reside - a
 great shame I believe.

UQLX will give you direct sector access through normal Unix devices, simple
 open#4,'/dev/fd0'
will do. The positioning is linear bytewise ( though sector boundaries
should probably be respected for compatibility).

Bye
Richard




Re: [ql-users] Re: Q40/Q60 device drivers

2001-07-01 Thread alfeng

On Fri, 29 Jun 2001 00:20:40 +0100 Q Branch [EMAIL PROTECTED]
writes:
 In article [EMAIL PROTECTED], Thierry 
 Godefroy [EMAIL PROTECTED] writes
 On Jeudi 28 Juin 2001 23:42, Tony Firshman wrote:
 
  On  Thu, 28 Jun 2001 at 21:16:18, you wrote:
 
  C'est l'exception qui confirme la règle
  
  
  (which I will risk to try to translate into: This is the 
 exception
  which confirms the rule)
 
  The exception proves the rule
 
 I knew it was risky...   ;-)
 In actual fact the word 'exception' as used in the context of this 
 saying originally meant the opposite of what it does today. 
 Therefore 
 the expression means that an example taken from a a list will 
 confirm 
 the premise and not the meaning held today that an example which 
 contradicts a rule will confirm it. A concept which is plainly 
 stupid.
 
 This is a good example of English meaning changing over the years 
 and 
 people being too happy to parrot a meaningless phrase rather than 
 apply 
 any thought. The original translation was closest.

I'm sorry to say that the immediately above is spurious and requires
comment:

Actually, the phrase proves the rule MAY BE TRANSLATED TO THE
VERNACULAR AS tests the rule ... 

The almost archaic use of the word proof is still (no pun intended)
used in the labeling of alcoholic spirits.

I believe that some fuel ratings are referred to as test ... 

So, 'the exception _tests_ the rule' is the correct transliteration to
the vernacular.

Similarly, 'the _proof_ is in the pudding' would be transliterated to
'the _test_ is in the pudding'.

Yes, the same word is frequently used as BOTH a verb AND a noun in
English whereby the external form is the same AND the internal form is
etymologically kindred.  

Further, Such-and-such proving grounds IS readily understood to be
Such-and-such testing grounds ...

So, we find the word proof and test maintain their  synonymous nature
when used as EITHER a verb OR noun OR adjective OR __.

A common external form (i.e., 'word') having multiple grammatical
utilization is, of course, a consequence of the general lack of
declension and/or conjugation (where applicable) in the English language.






GET INTERNET ACCESS FROM JUNO!
Juno offers FREE or PREMIUM Internet access for less!
Join Juno today!  For your FREE software, visit:
http://dl.www.juno.com/get/tagj.



Re: [ql-users] Re: Q40/Q60 device drivers

2001-07-01 Thread Timothy Swenson

At 01:12 PM 6/28/2001 -0400, Nasta wrote:

Let me give you an example. Suppose someone implemented SCSI on the Q40.
Then, you could connect an IDE and a SCSI hard disc to it. Boh would use
the QWA file system, but here is the problem: each device would have it's
own copy of the QWA handling code. If there was a CD connected to either
(and here we would already be circumventing another driver that works on
the same hardware), with a QXL.WIN on it, then the CD driver would also
need it's own copy of the QWA handling code. And, there would be no way to
make one be win1_ the other win2_ and the QXL.WIN on the CD be a win3_,
although they logically should be. It could be done, if they were all set
to _USE another name, then some sort of DEV_USE would be used to make them
dev1,2,3, and then a DEV_USE win would make them win 1,2,3. Total number of
QWA copies: 3. Total number of directory devices used: 4. If you think
about it, only one copy of the QWA handler code and only one device driver
would really be needed.

Now, I'm not an expert in XFS (the IRIX file system), but I spent enough 
time listening to the experts talking about it so that I know a little 
about it.

With XFS, the file system is separated from the physical device by a 
virtual file system (vfs).  In other words, an XFS inode, points to a vfs 
inode, which points to a physical device sector.  This way XFS can work 
across hard drives and CD's.  This also allows for a volume manager (XLV) 
to come into play, and step in between XFS and the VFS.  XLV allows 
striping and disk mirroring.

With SCSI pretty much being the only way to hook up disks and tapes, the 
SCSI controller one the one point where every call has to go through and 
the controller could handle multiple conversations (sort of timeshared as 
the SCSI protocol only allows one conversation at a time).

Something like this could be implemented in SMSQ/E, but it would take a 
concerted effort.  The XFS team had about 5-8 people at any one time.  With 
SMSQ/E we just have TT.

Tim Swenson







Re: [ql-users] Re: Q40/Q60 device drivers

2001-07-01 Thread Q Branch

In article [EMAIL PROTECTED], [EMAIL PROTECTED] 
writes
SNIP
  The exception proves the rule
I'm sorry to say that the immediately above is spurious and requires
comment:
SNIP
An interesting new take on the subject. I got my information from my 
English lecturer at college who extensively studied English usage and 
the changes which have occurred over the centuries. Of course the usage 
of the word to prove have been changed over the years too and, in baking 
parlance, you use the word to describe the fermenting process so that 
harks back to the 'pudding'. This is, however, not a real subject for 
discussion on this list and should be continued in private if you want.

-- 

Roy Wood
Q Branch
20 Locks Hill, Portslade, Sussex BN41 2LB
Tel : +44(0)1273-386030 / Mobile : +44 (0) 7836-745501
Fax +44 (0)1273-381577
web site : http://www.qbranch.demon.co.uk/



Re: [ql-users] Re: Q40/Q60 device drivers

2001-07-01 Thread alfeng

On Sat, 30 Jun 2001 21:19:53 -0500 Phoebus Dokos [EMAIL PROTECTED]
writes:
 At 12:20 ðì 2/7/2001 +0100, you wrote:
 In article [EMAIL PROTECTED], 
 [EMAIL PROTECTED] 
 writes
 SNIP
   The exception proves the rule
 I'm sorry to say that the immediately above is spurious and 
 requires
 comment:
 SNIP
 An interesting new take on the subject. I got my information from 
 my 
 English lecturer at college who extensively studied English usage 
 and the 
 changes which have occurred over the centuries. Of course the usage 
 of the 
 word to prove have been changed over the years too and, in baking 
 parlance, you use the word to describe the fermenting process so 
 that 
 harks back to the 'pudding'. This is, however, not a real subject 
 for 
 discussion on this list and should be continued in private if you 
 want.
 
 --
 
 Roy Wood
 Q Branch
 20 Locks Hill, Portslade, Sussex BN41 2LB
 Tel : +44(0)1273-386030 / Mobile : +44 (0) 7836-745501
 Fax +44 (0)1273-381577
 web site : http://www.qbranch.demon.co.uk/
 
 
 I can't help it but butt in the actual phrase is a translation 
 of an 
 ancient Greek phrase which actually means, the EXCEPTION REAFFIRMS 
 (NOT 
 TESTS) THE RULE :-)

Test as in testament!?!

So, the translation from the original Greek phrase would appear to remain
authentic despite thoughts to the contrary.

Of course, this reminds me of a couple of proverbs which I first heard in
Russian and which, many years later, I subsequently heard in English --
from wither and whence is the real origin?







GET INTERNET ACCESS FROM JUNO!
Juno offers FREE or PREMIUM Internet access for less!
Join Juno today!  For your FREE software, visit:
http://dl.www.juno.com/get/tagj.



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-30 Thread Q Branch

In article [EMAIL PROTECTED], Thierry 
Godefroy [EMAIL PROTECTED] writes
On Jeudi 28 Juin 2001 23:42, Tony Firshman wrote:

 On  Thu, 28 Jun 2001 at 21:16:18, you wrote:

 C'est l'exception qui confirme la règle
 
 
 (which I will risk to try to translate into: This is the exception
 which confirms the rule)

 The exception proves the rule

I knew it was risky...   ;-)
In actual fact the word 'exception' as used in the context of this 
saying originally meant the opposite of what it does today. Therefore 
the expression means that an example taken from a a list will confirm 
the premise and not the meaning held today that an example which 
contradicts a rule will confirm it. A concept which is plainly stupid.

This is a good example of English meaning changing over the years and 
people being too happy to parrot a meaningless phrase rather than apply 
any thought. The original translation was closest.
-- 

Roy Wood
Q Branch
20 Locks Hill, Portslade, Sussex BN41 2LB
Tel : +44(0)1273-386030 / Mobile : +44 (0) 7836-745501
Fax +44 (0)1273-381577
web site : http://www.qbranch.demon.co.uk/



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-30 Thread ZN

On 6/29/01 at 9:49 PM Robert Newson wrote:

What's wrong with using a parallel port to access a storage device?  Or
is this based on the misconception that parallel port = printer [output]
port (as that's for which they're generally used [by most PC users] and
only that driver is installed)?
My first meeting with a parallel port was on the Commodore Pet (3032) -
an IEEE 488 interface (aka HP-IB; a parallel port)

IEEE488/HPIB/GPIB is NOT the parallel port regular printers are attached
to, that one also being known as 'Centronics'. In fact, by function, and
'parallelness' the closest relative to IEEE488 would be SCSI, except that
IEEE488 was planned as a more general purpose peripheral bus from the very
start.

The difference between a regular 'Centronics' and IEE488, or for that
matter, SCSI, which, hardware-wise could also be called a kind of a
parallel port, is that it does not, in itself, implement any kind of
protocol - it is actually the device attached to it that does. When there
is nothing attached, there are no signals. With IEEE, SCSI and similar
interfaces, the protocol exists regardless of devices attached, it only
returns an error if you are trying to communicate with a non-existing
device.

There is nothing wrong with having storage devices connected to a port that
was originally only a collection of buffers to get signals over long wires.
As a matter of fact, that's how IDE started. Both have evolved somewhat
from the time they were concieved. For instance modern 'printer port'
implementations have modes where they DO implement a protocol of their own,
even with nothing connected. IDE still doesn't, though. But that's beside
the point - in theory you only need two wires to connect to anything
anyway.

What IS wrong is that many computers can communicate with devices that
connect to parallel ports, and that are not printers, but the QL supposedly
'can't'. In some cases, there are hardware limitations, but in others, for
instance, Q40, there are none, so what is the problem? It is exclusively a
driver issue, and because the way QDOS/SMSQ defines drivers is largerly the
same for all of them, the problems are by no means restricted to parallel
ports!

In particular, QDOS/SMSQ does not enforce a speciffic internal structure
for drivers, it just defines how the 'top end' - the TRAPs it needs to
support - must look, and provides some resources for the 'bottom end' -
interrupts and queues. How one gets from handling interrupts and moving
data to and from IO registers, to traps, which do things like 'move file
pointer' or 'read string', is entirely left to the 'internals' of the
driver.

At first glance, there is nothing wrong with this. However, the consequence
is that the driver writer does not feel compelled to think about a
possibility that someone else may want to attach hardware onto an interface
his driver handles, that he did not plan for, or that other interfaces may
use the same protocols he used in his driver.
So, when someone decides to add the new capability, in the first case, the
only way to find out if a driver can use hardware already used by another
driver, is to dissasemble the other driver, or have the source - and then,
in 99% of all cases it will be determined that without modifying the
existing driver (not always possible), adding the new functionality is
simply not possible.
In the second case, you may have to reinvent the wheel and do your own
version of something that has already been done. In the interest of
compatibility, you may have to actually again either dissasemble existing
code, or have the source. In the best case, even if you were just given the
required 90% of already existing code, it would be needlessly duplicated.
In the worst case, you'll spend 90% of your time doing things that were
already done, based on rather unreliable knowledge of how there were
supposed to be done. Even worse, you may be copying someone elses bugs!
This is NOT the way to write drivers!

Nasta




Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-30 Thread Thierry Godefroy

On Vendredi 29 Juin 2001 22:49, Robert Newson wrote:

   Don't invoke LOGIC here, as I see no logic in your proposal: they are
   DIFFERENT devices (one SCSI and one IDE) on DIFFERENT hardware... Even
   UNIX uses DIFFERENT device names for SCSI and IDE !

 But Unix DOESN'T have to!  It only does so to assist the user; [roughly
 speaking] Unix uses special files which are actually pointers to
 device drivers (as defined by the major number of the file) which can
 obviously be named anything you [as root] like.

Major numbers are DIFFERENT for SCSI and IDE drive as they refer to
DIFFERENT device drivers: so your remark is pointless

Thierry.



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-30 Thread Robert Newson

It's amazing the crap I write when I'm tired.  Thinking it through I
realised it was crap, re-editied it down, saw it was still crap and
intended to bin it, but hit the wrong button and sent it before logging
out.  Sorry.



RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-29 Thread Norman Dunbar

OK this thread is way over my head, but I'm reading it - I might even learn
something. 

Just to take off at a tangent, how about an open source (type) project to
build a new Operating System for ALL the QLs/compatibles/emulators out thare
to use.

Same hardware, same everything - if at all possible - I don't know if that
is possible, we could call it OSOS (Open Source OS) just for fun.

I'm not saying that we should rewrite QDOSMSQ and/or SBASIC, but why not
have a bit of fun in our spare time writing the ultimate OS for our
hardware. What could we do with all these years of experience ?

(Dons Nomex flame proof suit.)

Norman.



Norman Dunbar   EMail:  [EMAIL PROTECTED]
Database/Unix administrator Phone:  0113 289 6265
Lynx Financial Systems Ltd. Fax:0113 201 7265
URL:http://www.LynxFinancialSystems.com





RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-29 Thread Ian . Pine

 OK this thread is way over my head, but I'm reading it - I might even 
learn
 something.

I know what you mean; I need to go and have a lie down between each 
post :)  but I'm trying to follow the thread.

For me, an operating system should boot with built-in support for just 
the basic features I need to make the system usable, i.e. a keyboard 
for input, a screen to display output, some memory to run my programs 
in, and a backing store large enough to store my programs and data but 
fast enough to access those files dynamically in applications.

Secondary to that are other useful devices: a printer, a large capacity 
read/write removable media for making backups and transferring files 
(which need only be a streaming device, not random access).  Because 
these devices are used infrequently (relatively, compared to the hard 
disk) there is no need to bloat the O.S. with drivers and make them 
permanently resident at boot time.  If I want to print a document or 
backup some files, I can manually - or from the application - load the 
necessary driver, then unload it again when the job is done.

Then there are the more esoteric devices that the industry is inventing 
all the time, aimed at specific uses, e.g. scanners.  It might not even 
be necessary to provide separate drivers at all; the applications 
through which the device is intended to be used could be completely 
self-contained.

If that is the 'spirit' of QDOS/SMSQ then woo-hoo; QDOS/SMS forever !

Well, that's all the waffle, now the main points (oh, alright then, 
more waffle):

I want my operating system to be small, fast, reliable and not 
constantly being changed to add features (and bugs along with them) 
that I might never want to use, when these can be provided in optional 
add-on packages that I only have to load when I use them - particularly 
if their presence would be detrimental to overall performance.

If, on the other hand, the O.S. IS going to be bloated by all this 
extra stuff that I have no option about loading, then I become much 
more concerned about how it is implemented - quality, efficiency, 
standards and how it will all affect basic performance.

I look forward to trying the CD driver.  I don't really care how it 
works.  I don't care if it supports only ISO9660, doesn't support DVDs, 
or XYZs.  I don't care if the devices are called CDRx_, WINx_ or 
anything else.  If it lets me get files off a CD onto my hard disk then 
I'll be doing more than I can do already, and I'm grateful somebody did 
all the hard work and saved me the effort of trying to figure out how 
to do it myself.  But if, at the end of the day, I don't like it, then 
I don't have to use it and my computer will carry on working just the 
way it did before, until another solution comes along (like LS120 
support on Q40, please! :O)

Well, that's my two pen'orth. Doesn't add anything to the technical 
thread, but...well.

cheers,
Ian.

-Original Message-
From: ndunbar 
Sent: 29 June 2001 08:38
To: ql-users
Cc: ndunbar
Subject: RE: [ql-users] Re: Q40/Q60 device drivers


OK this thread is way over my head, but I'm reading it - I might even 
learn
something. 

Just to take off at a tangent, how about an open source (type) project 
to
build a new Operating System for ALL the QLs/compatibles/emulators out 
thare
to use.

Same hardware, same everything - if at all possible - I don't know if 
that
is possible, we could call it OSOS (Open Source OS) just for fun.

I'm not saying that we should rewrite QDOSMSQ and/or SBASIC, but why not
have a bit of fun in our spare time writing the ultimate OS for our
hardware. What could we do with all these years of experience ?

(Dons Nomex flame proof suit.)

Norman.




Norman Dunbar   EMail:  [EMAIL PROTECTED]
Database/Unix administrator Phone:  0113 289 6265
Lynx Financial Systems Ltd. Fax:0113 201 7265
URL:http://www.LynxFinancialSystems.com





Visit our website at http://www.ubswarburg.com

This message contains confidential information and is intended only 
for the individual named.  If you are not the named addressee you 
should not disseminate, distribute or copy this e-mail.  Please 
notify the sender immediately by e-mail if you have received this 
e-mail by mistake and delete this e-mail from your system.

E-mail transmission cannot be guaranteed to be secure or error-free 
as information could be intercepted, corrupted, lost, destroyed, 
arrive late or incomplete, or contain viruses.  The sender therefore 
does not accept liability for any errors or omissions in the contents 
of this message which arise as a result of e-mail transmission.  If 
verification is required please request a hard-copy version.  This 
message is provided for informational purposes and should not be 
construed

RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-29 Thread Timothy Swenson

At 08:38 AM 6/29/2001 +0100, Norman wrote:
Just to take off at a tangent, how about an open source (type) project to
build a new Operating System for ALL the QLs/compatibles/emulators out thare
to use.

An interesting idea, Norman.  There are some pluses and some minuses:

+ Good way to expand our knowledge of QDOS
+ Possible way to get additional features

- More fractionalizing of QDOS community (QDOS, Minerva, SMSQ, etc.)

If this was to go forward, there are two ways to go:
- QDOS Classic   (should be able to use in North America)
- Minerva (if ever publicly released)

An organization similar to what Linux is using could be setup to keep the 
project running smoothly.  We do have a number of experts (outside of Tony 
Tebby) that might be willing to contribute to the project.  I'd be willing 
to help on the documentation side (so that I could learn QDOS better).

There might need to be some work to replace some commercial parts of QDOS 
that have become integrated in QDOS (PE), or some arrangement worked out, 
or an assumption that they will stay commercial.

Anyone willing to step up and play project leader?

Tim Swenson




RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-29 Thread Phoebus Dokos

At 10:21 ðì 29/6/2001 -0700, you wrote:
At 08:38 AM 6/29/2001 +0100, Norman wrote:
Just to take off at a tangent, how about an open source (type) project to
build a new Operating System for ALL the QLs/compatibles/emulators out thare
to use.

An interesting idea, Norman.  There are some pluses and some minuses:

+ Good way to expand our knowledge of QDOS
+ Possible way to get additional features

- More fractionalizing of QDOS community (QDOS, Minerva, SMSQ, etc.)

If this was to go forward, there are two ways to go:
- QDOS Classic   (should be able to use in North America)
- Minerva (if ever publicly released)

An organization similar to what Linux is using could be setup to keep the 
project running smoothly.  We do have a number of experts (outside of Tony 
Tebby) that might be willing to contribute to the project.  I'd be willing 
to help on the documentation side (so that I could learn QDOS better).

There might need to be some work to replace some commercial parts of QDOS 
that have become integrated in QDOS (PE), or some arrangement worked out, 
or an assumption that they will stay commercial.

Anyone willing to step up and play project leader?

Tim Swenson


A-HA! Here we go again.. :-)
A quick look back about 2-3 years ago on this mailing list will reveal that 
the discussion was made over and over again :-) Lots of flaming on that 
one
To say it once more... (and hoping this time around the idea is more ripe) 
I firmly believe this is the best way to support, enhance and even spread 
QDOS compatible systems.


Phoebus






Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-29 Thread Robert Newson

 [meta-devices]
 
  NO! Channels are meant to exchange DATA, NOT to send COMMANDS or
  PARAMETERS to a piece of hardware !  (of course, you could argue
  that commands and parameters are just some form of data,
  but you won't, will you ? ;-)

This reminds me of how the Apple ][ disk drives were accessed from
within a program - via PRINT!  The device driver scanned all output
looking for a lead-in escape sequence and then used the rest of the
output line as the command and its parameters to execute.

  Don't invoke LOGIC here, as I see no logic in your proposal: they are
  DIFFERENT devices (one SCSI and one IDE) on DIFFERENT hardware... Even
  UNIX uses DIFFERENT device names for SCSI and IDE !

But Unix DOESN'T have to!  It only does so to assist the user; [roughly
speaking] Unix uses special files which are actually pointers to
device drivers (as defined by the major number of the file) which can
obviously be named anything you [as root] like.

 Things were easy when the only thing you could connect to a floppy
 interface was a floppy. Trouble started when they inroduced tape drives.
 With IDE things got complex faster - it started off as hard drive only, now
 you can put almost any storage device (including floppy) onto it, using two
 distinct protocols. With SCSI, things are even worse, cause there you can
 use non-storage devices.

Funny you should mention SCSI, I've just got a copy of next-next month's
(August) Computer Shopper (it's still June and I can no longer buy a
June NOR July issue!) and therein I came across an artice about it. 
Although SCSI was originally devised by a hard disk manufacturer
(Shugart), it is actually more of a peripheral bus (hence its ability
to have longer cables than IDE).  What's actually worse about it is that
SCSI normally refers to SCSI-3 which isn't very standard (from what I
could gather from the article - sorry, left the mag at work, otherwise
I'd give quote(s))

  Then, we have non-storage oriented interfaces that
 got storage devices grafted to them, 

I suppose SCSI could be defined as the opposite: a storage interface
that [early on, in acceptance stage by standards people,] had
non-storage devices grafted on.

  such as parallel ports.

What's wrong with using a parallel port to access a storage device?  Or
is this based on the misconception that parallel port = printer [output]
port (as that's for which they're generally used [by most PC users] and
only that driver is installed)?

My first meeting with a parallel port was on the Commodore Pet (3032) -
an IEEE 488 interface (aka HP-IB; a parallel port) by which its floppy
disks (along with a printer and any other devices) were attached.

Then, if you go to the Commodore VIC-20, that (if I've got the right
machine) had a floppy disk drive that was attached via a SERIAL port!

Food for thought?

Keep up the good work

Robert



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread Thierry Godefroy

On Jeudi 28 Juin 2001 04:13, ZN wrote:

[long filenames support via special device driver and thing]
 Well, I am glad to have been proven wrong on this. Briliant idea!
 I wonder if a more complete spec could be made for such 'registration'
 mechanisms as they could be useful for other parts of the driver, not
 only the long file names.

Which parts ?

 Regarding long file names, some kind of 'shorthand' may be required
 when referring to them, such as the concept of 'current directory'.

There is already references to current directory into the channel
headers of level 2 devices...

 Are we going to have the directory separateor argument again, i
 wonder? :-)

Nothing to argue about: both QDOS and UNIX namming conventions may
be implemented into an ISO9660/Joliet device driver. They are just
that: conventions... and not driver programming constraints.

 I do see one remaining problem, though. There is still a limit to the
 number of directory devices that can be in use simultaneously.

Yes, 16...

 Since all calls in SMSQ/E are passed to a non-directory driver,
 I have to ask, why bother with a directory driver?

Because the IOSS takes care of most ancillary tasks when opening
a channel on a directory device driver:

- device physical definition block check and allocation (if absent).
- channel definition block duplication in case of a shared open call
  on an already open file.
- automatic freeing of channel def. block for DELETE calls.

And also because non-directory device drivers don't get listed into
the programs that scan the directory device driver linked list to
find out which directory devices are available on the system (QPAC2
Files menu, Cueshell, PWfile, etc)...

[modular device driver]
 This is not really what I meant. What I emant is that 'mounting' of a
 devices, i.e. linking of a driver to a piece of physical hardware, should
 logically be handled by TRAP #2. However, there are no calls to do this

Yes there are...

Under SMSQ/E this is handled through extensions things when needed
(i.e. floppy and ramdisks do not need this mechanism, but hard disks
and ATAPI device do and got one). For hard disks (on Q40/Q60 and
probably ATARI), you got the SBASIC WIN_DRIVE command (which in fact
calls an extension from the WIN control thing): e.g. WIN_DRIVE 1,0,1
links win1_ to first IDE drive (1st IDE controller, master) and to the
second partition (0=1st, 1=2bd, etc...).

With the CDROM device driver, you got CDR_DRIVE device,drive,session.
E.g. CDR_DRIVE 1,1,3 links cdr1_ to the fourth session on the second
IDE drive (1st IDE controller, slave).

The problem is that I don't have the WIN control specs, so I don't
know if my implementation of the DRIV extension (same problem for
the USE one BTW), in the CDROM thing is the same (on the parameters
passing point of vue) than the one of the DRIV extension in the WIN
control thing... I will write to TT about this (let's hope he will
reply this time...). Of course, these extension should ideally share
the same parameter passing conventions so that they can be called from
the same routine in assembly or C (or whatever language). Example with
a C library routine:
int set_device(char *thing_name, int device, int drive, int volume);
Such function would then just have to call the thing which name is
thing_name with DRIV as the required extension and device/drive/volume
as parameters...

 but special parameters passed to open/close or even format calls could
 be used for this.

I see the meta device sea serpent emerging once again here... ;-)

Let me say that this is (although definitely possible) NOT in the
philosophy of QDOS/SMS. TRAP #2/TRAP #3 are related to channels
(with the notable exception of the FORMAT TRAP #2), and NOT to
anything related to device driver (or drive) parameter settings...

Here AGAIN, think thing !

 However, even if they are, at the very lowest level, where a
 single piece of hardware can be used by many drivers, there may be a
 problem, unless all of the drivers that can access the hardware are
 rewritten to take account of each other, or a 'hardware' driver was
 written, into which other drivers are linked (problem here is that we might
 end up with more than the max number of simultaneous directory drivers).

If all device driver are properly written, there is no risk for this...

 IDE is the example that comes to mind on a QL. Suppose that the user
 connects a hard drive and a CD ROM as master and slave on a single IDE
 channel.

This is my case on my Q60... But IDE specs do take care for this
and a same IDE bus may be shared by the two master and slave devices
provided they both obey to the IDE specs (see below)...

 Effectively, this looks like a set of registers for each device,
 however, only one set at a time can be used, and this is switched by one
 bit. This bit is visible and changeable by both drivers. Unfortunately,
 most (if not all) drivers assume the hardware will exclusively be used by
 themselves - and here we have a 

Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread Richard Zidlicky

On Wed, Jun 27, 2001 at 10:13:41PM -0400, ZN wrote:
  Well, I hate to be a party breaker, but guess what: all standard CD file
  systems have a deeper directory structure and/or longer names than the
 QL
  is capable of handling with it's 36 character path+name limit.
 
  Wrong! ISO9660 is limited to 32 chars in filenames (path name included)
  and to 8 levels of sub-directories...
 
 True, as long as the unextended ISO9660 is used (without Joliet). I don't
 have the ISO specs handy, but wasn't it originally 8+3 filenames?

technically there is no such limitation, ie you can have up to 32 mixed
case chars per name and unlimited nesting depth. However infinit wisdom
triumphed and the standard was botched to say that ISO9660 compliant
drivers are only required to handle 8+3 UC names + maximum subdir depth
of 8.. apparently to grant DOS 2.10 the ISO9660 compliant sticker.
Most reasonable OS like RISC OS and Amiga OS fully support the uncrippled
version of the standard.

Also the primary vendor independent extension format of IS9660 is not 
Jolliet (which suffers a silly 64 char/name limitation) but Rockridge.
 
 IDE is the example that comes to mind on a QL. Suppose that the user
 connects a hard drive and a CD ROM as master and slave on a single IDE
 channel. Effectively, this looks like a set of registers for each device,
 however, only one set at a time can be used, and this is switched by one
 bit. This bit is visible and changeable by both drivers. Unfortunately,
 most (if not all) drivers assume the hardware will exclusively be used by
 themselves - and here we have a problem, they rely on the state of
 registers to be preserved.

I think Thierry looked at the SMSQ disassembly, there should be no surprises. 
This could get a real problem when SMSQ starts using interrupts for IDE.


Bye
Richard



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread ZN

On 6/28/01 at 11:14 AM Thierry Godefroy wrote:

[long filenames support via special device driver and thing]

 Well, I am glad to have been proven wrong on this. Briliant idea!
 I wonder if a more complete spec could be made for such 'registration'
 mechanisms as they could be useful for other parts of the driver, not
 only the long file names.

Which parts ?

Exactly the ones you describe in the rest of your answer.
1) have a _USE and _DRIVE thing that handles the corresponding commands for
all devices
2) your 'que atapi packet' thing, if slightly extended, could be used by
anything working over IDE
etc...

Don't think that I am nagging - you have obviously thought of many things
(maybe even everything :-) ) and I for one am VERY glad to see it, but you
must already realize you are breaking new grounds here. I hope you will
document it all, otherwise people will have to read the code again, and we
know how 'well' that works :-)

 Regarding long file names, some kind of 'shorthand' may be required
 when referring to them, such as the concept of 'current directory'.

There is already references to current directory into the channel
headers of level 2 devices...

Well, that's nice to hear. Are they being used?

 Are we going to have the directory separateor argument again, i
 wonder? :-)

Nothing to argue about: both QDOS and UNIX namming conventions may
be implemented into an ISO9660/Joliet device driver. They are just
that: conventions... and not driver programming constraints.

I meant things like opening files at ../somewhere. i.e. embedded
'shorthand' for directory level up/down etc :-)

 I do see one remaining problem, though. There is still a limit to the
 number of directory devices that can be in use simultaneously.

Yes, 16...

This is why your thing approach is perhaps the best given circumstances. If
that is in the philosophy of QDOS/SMSQ is, well, a philosophical question,
but I'll get to that later.

[Why directory drivers]

Because the IOSS takes care of most ancillary tasks when opening
a channel on a directory device driver:

- device physical definition block check and allocation (if absent).
- channel definition block duplication in case of a shared open call
  on an already open file.
- automatic freeing of channel def. block for DELETE calls.

This code should have been a thing (for all I know, it is) - anything that
needed those services would then just call it, and it could be changed or
'evolved' in time.
But what I really wanted to ask is this: is the 16 device limit only a
limit because of the slave block mechanism using limited bits to track what
blocks belong to which device?

And also because non-directory device drivers don't get listed into
the programs that scan the directory device driver linked list to
find out which directory devices are available on the system (QPAC2
Files menu, Cueshell, PWfile, etc)...

I see what you mean - this cannot be solved by a driver :-(

 What I emant is that 'mounting' of a devices, i.e. linking of a driver
 to a piece of physical hardware, should logically be handled by TRAP #2.
 However, there are no calls to do this

 Yes there are...

Well, not for TRAP #2, which are IO management and should logically also
manage devices, FORMAT being the case that sets the precedent. Using the
same argiment as you have later, FORMAT is not entirely in the spirit of
QDOS/SMSQ. It shouldn't really be a TRAP #2, but an extension (thing) like
the _USE and _DRIVE commands. On the other hand, if there was a TRAP #2 for
the _USE and _DRIVE, would they be in the spirit of QDOS/SMSQ?
This may all sound like I am starting an argument. Well, no - I am just
pointing out that the QDOS/SMSQ way of managing devices was originally
shoved into TRAP #2 in the form of a FORMAT call, which the proved to be
insifficient. Even using extension things to do the device management is
insufficient for some functions - it is a problem, and eventually, it
should be solved. I'm just tryngt to point this out. 

 Under SMSQ/E this is handled through extensions things when needed
 (i.e. floppy and ramdisks do not need this mechanism, but hard disks
 and ATAPI device do and got one). For hard disks... you got the
 SBASIC WIN_DRIVE command (which in fact calls an extension from the
 WIN control thing)... With the CDROM device driver, you got CDR_DRIVE
 The problem is that I don't have the WIN control specs, so I don't
 know if my implementation of the DRIV extension [is correct][

 but special parameters passed to open/close or even format calls could
 be used for this.

I see the meta device sea serpent emerging once again here... ;-)
Let me say that this is (although definitely possible) NOT in the
philosophy of QDOS/SMS. TRAP #2/TRAP #3 are related to channels
(with the notable exception of the FORMAT TRAP #2), and NOT to
anything related to device driver (or drive) parameter settings...

Hm, but you provide some proof to the contrary in your own answer - the
ATAPI command que. You 

Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread Marcel Kilgus

Thierry Godefroy wrote: 
  JOCHEN PLEASE READ THIS ! *

As far as I know he doesn't read the list at the moment.

Marcel




Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread Tony Firshman

On  Thu, 28 Jun 2001 at 21:16:18, you wrote:
(ref: [EMAIL PROTECTED])

Well, we should ask Tony then... But my guess is that FORMAT was
accidentally put in TRAP #2 calls. As we say in France:

C'est l'exception qui confirme la règle


(which I will risk to try to translate into: This is the exception
which confirms the rule)

The exception proves the rule

lots snipped

This discussion is getting _very_ good.
It almost now needs a referee (8-)#


-- 
   QBBS (QL fido BBS 2:257/67) +44(0)1442-828255
mailto:[EMAIL PROTECTED] http://www.firshman.demon.co.uk
Voice: +44(0)1442-828254  Fax: +44(0)1442-828255
  TF Services, 29 Longfield Road, TRING, Herts, HP23 4DG



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread Thierry Godefroy

On Jeudi 28 Juin 2001 23:42, Tony Firshman wrote:

 On  Thu, 28 Jun 2001 at 21:16:18, you wrote:

 C'est l'exception qui confirme la règle
 
 
 (which I will risk to try to translate into: This is the exception
 which confirms the rule)

 The exception proves the rule

I knew it was risky...   ;-)

Thierry.



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-28 Thread ZN

On 6/28/01 at 11:14 AM Thierry Godefroy wrote:

[lots snipped]

OK, this is supposed to be a discussion, not an argument, so let me make
some things clear right here.
Thierry, I am not arguing 'my' approach over yours. We are really on the
same side here and arguing serves no purpose. If nothing else, I've written
no QL software, and you are famous for it, so you have done infinitely more
than I have, therefore I really have no grounds for arguing at all.
Besides, YOU are doing the driver, so you will eventually do exactly what
you want. I'm just hoping you are keeping an open ear :-)
You did pull my tongue about MDs and I just told you why I envisioned them
the way I did, that's all. I agree with all of the ideas you expressed,
though not with all details. I'll elaborate later.

That said, on to the matter at hand:
[Documentation]

I am relieved to see you are going to extensively document your effort.
There are surely people who will use and apreciate the documentation.

[Directory shorthand and directory separators]

Agreed, it should not be handled by drivers anyway. On that level, one
works with channel IDs, not file names.

[hidden things]

 [device driver speciffics] should have been a thing (for all I know,
they
 are) - anything that needed those services would then just call it, and
it
 could be changed or 'evolved' in time.

 The fact is that when QDOS was written, things did not exist at all
 and when SMSQ(/E) was written, it had to be upward QDOS-compatible...

Agreed, except the part about SMSQ/E. QDOS has no way of knowing if drivers
are internally made up of several things that pass stuff to each other, so
no real compatibility issues there. The only reason I mention this, and you
later allude to, that this is how some SMSQ/E drivers may actually alredy
be constructed, it's just that it isn't documented, or at least the docs
are not widely available.

[16 device drivers limit]

 the pointers to device physical definition blocks are held
 (unlike all other QDOS tables) _into_ the system variables (i.e.
 there is only room for 16 table entries)...

So basically, the only way to circumvent this would be to modify SMSQ/E.
OK, no-one is holding their breath here :-)

[Trap #2 and FORMAT]

 But remember that things were not available when QDOS was written:
FORMAT
 had to be vectored, and TRAP #2 was the closest and more logical
approach
 then...

Oh, I agree. What is 'right' here is a philosophical question. When
implementing a new driver the available resources should be used to the
greatest advantage. As I said, you did 'pull my tongue' and I explained why
and how the MD idea came about. The reson why channels were used was
because they were there, and it minimized the amount of new stuff to
invent. It wasn't implied that's the ideal or only way.
I will, however, stand by my conviction that, as they are currently
documented, QDOS/SMSQ drivers and devices leave a lot to be desired. It is
high time some of that was addressed, and I for one admire your courage for
doing so. 
However, since you will, in essence, be setting up the standard, I think we
both know it's for your own good to leave 'space for expansion' and that
just involves some advance thinking - and I'm sure you are doing that.

 Well, we should ask Tony then... But my guess is that FORMAT was
 accidentally put in TRAP #2 calls. As we say in France:
 C'est l'exception qui confirme la règle

Oh, I completely agree there. The saying translates directly and completely
accurately into Croatian :-) FORMAT was just put into TRAP #2 because, even
though it may not have been the ideal fit, it was the best available at the
time.

 Even using extension things to do the device management is
 insufficient for some functions - it is a problem, and eventually, it
 should be solved. I'm just trying to point this out.

 You can do almost everything you want in things...
 As such, I don't see how things could be insufficient!

Not things themselves. The nice thing about things is that they can be
anything ;-)
I was referring to the available extensions to date. Your own admission
about guesswork about the _DRIVE extension makes me think it would be a
good idea to decide on some sort of a set of standard extensions. Or at
least document the existing ones, and proclaim them as standard :-)))
You yourself are introducing new ones here - long file name handler,
command queue.
While no-one can predict the future, we can make very educated guesses. I
was just making mental leaps, really. I do agree that POSIX is not the
be-all and end-all, but it is a good model to look at, and while it
certainly should not (or even cannot) be copied verbatim into QDOS/SMSQ,
there is no harm in 'stealing the good bits' from it.

[meta-devices]

 NO! Channels are meant to exchange DATA, NOT to send COMMANDS or
 PARAMETERS to a piece of hardware !  (of course, you could argue
 that commands and parameters are just some form of data,
 but you won't, will you ? ;-)

I could 

RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-27 Thread Norman Dunbar

-Original Message-
From: Dave Walker [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 27, 2001 6:06 AM
To: [EMAIL PROTECTED]
Subject: Re: [ql-users] Re: Q40/Q60 device drivers


 I would be more than happy to make the DiscOVER sources available 
Nice one Dave, I'd like to see the sources please.

 although whether anyone else could fathom their way around them ...
Aha, a challenge ! I like those :o)


Norman.



Norman Dunbar   EMail:  [EMAIL PROTECTED]
Database/Unix administrator Phone:  0113 289 6265
Lynx Financial Systems Ltd. Fax:0113 201 7265
URL:http://www.LynxFinancialSystems.com









RE: [ql-users] Re: Q40/Q60 device drivers

2001-06-27 Thread Norman Dunbar

Ahem, I *think I understood that :o)

Norman.



Norman Dunbar   EMail:  [EMAIL PROTECTED]
Database/Unix administrator Phone:  0113 289 6265
Lynx Financial Systems Ltd. Fax:0113 201 7265
URL:http://www.LynxFinancialSystems.com




-Original Message-
From: Thierry Godefroy [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, June 27, 2001 10:44 AM
To: [EMAIL PROTECTED]
Subject: Re: [ql-users] Re: Q40/Q60 device drivers

VERY LARGE INFORMATIVE SNIP



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-27 Thread Q Branch

IAn Interesting discussion this and some very good points raised by all. 
I see, as usual that Thierry has his finger firmly on the pulse here and 
is way ahead of most of us. When we discussed CD drivers at Eindhoven 
last weekend we were suggesting that it be ported to the Qubide and that 
a new Qubide ROM would be commissioned ( Phil is making the sources 
available soon I gather). I had no idea that it might be a problem with 
the rate though. My suggestion of being able to at least read a QXL.WIN 
file was based on that being in the root directory and on the complaints 
over the years from QXL / QPC users that they can backup their files to 
CDs or ZIP drives but then not read them on the Aurora etc.

-- 

Roy Wood
Q Branch
20 Locks Hill, Portslade, Sussex BN41 2LB
Tel : +44(0)1273-386030 / Mobile : +44 (0) 7836-745501
Fax +44 (0)1273-381577
web site : http://www.qbranch.demon.co.uk/



Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-27 Thread ZN

 Well, I hate to be a party breaker, but guess what: all standard CD file
 systems have a deeper directory structure and/or longer names than the
QL
 is capable of handling with it's 36 character path+name limit.

 Wrong! ISO9660 is limited to 32 chars in filenames (path name included)
 and to 8 levels of sub-directories...

True, as long as the unextended ISO9660 is used (without Joliet). I don't
have the ISO specs handy, but wasn't it originally 8+3 filenames?

 As a result, it is not possible to implement a directory device driver
 that would do anything but direct sector access, or some sort of bodged
 file access. 

 Wrong again !
 By using a small trick, I can make a SMSQ/E (NOT QDOS !) directory
 device driver to use long filenames. Here is how the trick works:

In QDOS/SMS, when an OPEN system call is issued, the IOSS (Input Output
Sub System) first extract the device/file name and asks to each non-
directory device driver if it recognizes this name as one of its device
(+parameters) name, the length of this name is not limited (well it is,
but to a bigger number of chars: 127 if the name was not quoted, 32765
if it was).

Yes, once a long time ago I wrote about this. because non-directory devices
are searched first, and they basically accept a QDOS string as name plus
parameters, this enables a driver to get to the untruncated string which
may or may not be a file name.

 To overcome the 36 chars limit, [a non directory device driver has to]
 to store the long filename somewhere, truncate it to 36 chars [and return
 not found so that scanning continues to the directory driver which then
 sees a 36 character name and handles it]
 When a new device driver wants support for long filename, the only thing
 it must do is to register itself to the long filename thing... by
 passing it it's device driver linkage block address [where the pointer
 to the long name will be placed]
 Now why only SMSQ/E and not QDOS? Because SMSQ/E implements support for
 all TRAP #2 calls into the non-directory device drivers. E.g., when
 issuing a DELETE system call under QDOS, only the directory device
 drivers list is scanned [so the long file name handler would not be
 called]

Well, I am glad to have been proven wrong on this. Briliant idea!
I wonder if a more complete spec could be made for such 'registration'
mechanisms as they could be useful for other parts of the driver, not only
the long file names. Regarding long file names, some kind of 'shorthand'
may be required when referring to them, such as the concept of 'current
directory'. Are we going to have the directory separateor argument again, i
wonder? :-)
I do see one remaining problem, though. There is still a limit to the
number of directory devices that can be in use simultaneously. Since all
calls in SMSQ/E are passed to a non-directory driver, I have to ask, why
bother with a directory driver?

 I won't even go into ideas of having the CD driver being modular,
 something that links to a regular 'ide' driver through correct sector
 access - cause QDOS has no real linking capability, so it would have
 to be yet another bodge. 

 Still wrong...
 My CD-ROM device driver is implemented as a thing and will
 implement a registering thing extension that will allow
 for a module to plug itself into the device driver. The
 module will have to implement OPEN, CLOSE and all I/O
 sytem calls for its own filesystem.

This is not really what I meant. What I emant is that 'mounting' of a
devices, i.e. linking of a driver to a piece of physical hardware, should
logically be handled by TRAP #2. However, there are no calls to do this -
but special parameters passed to open/close or even format calls could be
used for this. However, even if they are, at the very lowest level, where a
single piece of hardware can be used by many drivers, there may be a
problem, unless all of the drivers that can access the hardware are
rewritten to take account of each other, or a 'hardware' driver was
written, into which other drivers are linked (problem here is that we might
end up with more than the max number of simultaneous directory drivers).

IDE is the example that comes to mind on a QL. Suppose that the user
connects a hard drive and a CD ROM as master and slave on a single IDE
channel. Effectively, this looks like a set of registers for each device,
however, only one set at a time can be used, and this is switched by one
bit. This bit is visible and changeable by both drivers. Unfortunately,
most (if not all) drivers assume the hardware will exclusively be used by
themselves - and here we have a problem, they rely on the state of
registers to be preserved.
SCSI is another related example. A SCSI host adapter does nothing of
itself, but may have many different devices connected to it, that all
require treatment by essentially different drivers. This may look
irrelevant, however, ATAPI is essentially a SCSI data transport protocol
that works over IDE, which wasn't originally planned 

Re: [ql-users] Re: Q40/Q60 device drivers

2001-06-27 Thread Timothy Swenson

At 10:13 PM 6/27/2001 -0400, Nasta wrote:
SCSI is another related example. A SCSI host adapter does nothing of
itself, but may have many different devices connected to it, that all
require treatment by essentially different drivers.

Just to expand on what Nasta said, different drivers (such as disk or tape) 
utilize the SCSI controller to talk with their respective devices.  The 
controller is opened as a device and just handles the SCSI conversation 
between the devices and their drivers.  I've done some  SCSI Bus trace 
analysis so I'm familiar with how the protocol works.  I wrote an article 
for Sys Admin mag on the subject if anyone wants to know more.

Tim Swenson