On 1/10/02 at 9:19 PM Peter Graf wrote:

>Hi Nasta,
>
>>Two more plus a CF socket adds hot-swappable CF card capability...
>>...PC87C307, an AD1816, a 91C96 (or possibly 91C111?). That more or less
>>covers all the necessary ISA components.

>Would it be worth considering to make a Q40/Q60 extension card with the IO
>components you have in mind for XY-Fire (plus one or two goodies)?
>The card wouldn't have much size constrainst, and almost no high-frequency
>challenges, so placement and routing shouldn't be too tricky. The card
>could be a "playground" to get familiar with the chips and write the
>software.

Certainly it is worth considering - if you look back at some older
messages, you will find I already suggested something like it.
It really depends on the user interest, but I think it would be a good
project that could ultimately benefit all platforms, though at first, of
course, the Q40 and GF (or should I now say XY-F :-) ).

I myself would prefer to be the consulting party on such a design, offering
the existing implementation on the GF and anything I already designed as a
start - and then hoping to share experiences as the project goes along,
while concentrationg on GF.

As for the design and logistics...
If the parts were procured with both Q40/60 IO card and GF in mind, it
would make both cheaper as the quantities would be higher. While some
functions would not appear on the GF (such as IDE), they could be fully
implemented on the IO card.
Driver-wise, with some atention to detail, most of the hardware on this new
IO card that duplicates the hardware on a regular IO card would instantly
be usable by existing Q40/60 drivers. On the GF the addresses of some
registers would have to change, as well as the interrupt handling for some
devices.
The ethernet would most probably be usable 'almost instantly' under Q40/60
Linux, after register addresses are modified. Possibly even extended sound
could run 'almost instantly' under Linux if tehre are Linux drivers for an
AD1815/1816 chip, and it would not be a great problem to implement under
QMSQ/E for Q40/60, even with no changes to interrupt structure - and it
would be compatible to SSSS because the audio chip can be configured to use
the required sample rate and word width.
Extras such as an integrated CF card slot would be VERY easy. Two IDE
channels also very easy (not so easy to find on ISA...). MIDI is already
supported by the sound chip (although on the GF external line
drivers/receivers are needed) and there are even extras such as I2S (should
anyone want SPDIF digital IO) and a DSP port. The PC87307 also has IRDA.
The card could be designed to use Q40/60 ISA environment (i.e. no DMA)
which is exacttly the way GF uses the chips too.

All in all, there are 3 problems:
1) Someone to implement it (design is largely done already - just
copy/modify the GF circuits)
2) Cost justification - presumeably from the extras on it
3) Where to put all the connectors for the multitude of features :-)

>> Any chance to get USB (for digital still camera for instance, as even
>> fast RS232 is very slow) ?

> Our QDOS/SMSQ software development shortage practically prohibits to
> work on USB host hardware. And even the hardware is a bit difficult
> because of the lack of suitable USB *host* chips.

Completely agreed there. Although, it would actually be easyer making the
Q40/60 an USB _peripheral_ to something else, the question being if that's
of any use. Certainly it would be on a SBC, to upload/download programs.

Also, the phrase 'suitable USB host chips' is really telling it better than
it is. The only way to get real USB would be to introduce a PCI bridge,
then hang one of the rapidly becoming obsolete USB adapter chips on it.
That would make USB a (huge problem)^2 - requiring the solution of PCI
_and_ USB support. Very unlikely. 

Oh yes - MOT, in their infinite 'wisdom' have ONE ColdFire chip with
integrated USB host - and it's the least compatible (read: useless) kind
:-(
When I looked at TT's ATAB, if that ColdFire were 68k compatible, it would
have been the IDEAL chip for the job :-((((

> I already have a *fast* hardware solution for digital cameras and
> Q40/Q60 (Much faster than USB!) Which is a CompactFlash adaptor.

Agreed - every camera I have seen (and even some very high-end ones) use
1.2M USB and with CCD sizes going into the 4M territory, and CF card sizes
increasing with prices falling, it takes forever to transfer the pictures.
OTOH reading directly from a CF is (almost) as fast as an IDE hard drive.

>> Yes, except for the interrupt system which is very different. Depending
>> on the required speed of the peripheral they are mapped to three
interrupt
>> levels. The highest levels also have the shortest service routines, and
>> service hardware that has FIFO buffering built-in.

> I also thought about it, but went back to the QL way of one level for
all,
> except sound. Mainly because I wasn't sure about the need for software
> changes.

Actually, the changes themselves are not that extensive, surprisingly. Of
course, the required locations for the autovectors for the new interrupt
levels have to point to the right places.
There would be two ways to do this:
1) Quick and dirty - the drivers that use the extra level would have their
own 'private' code to handle FIFO filling and emptying and the new
interrupts would not be visible on the system level otherwise. In effect
this would mean that the new levels would be 'hard-wired' into the drivers
that require them.
2) The 'proper' way: there would be a thing to handle linked lists to which
any driver that wants to use a new interrupt links into, in effect this
would implement additional lists more or less duplicting existing interrupt
list behaviour for new interrupts. It would then also be a new system
resource, thus avoinding the need to introduce new Trap calls.

Incidentally, the GF also introduces a high frequency periodic interrupt
just like the Q40 does, but it's not as fast as on the Q40. It's also
intended primairly for sound, but it can be lower frequency because the
sound chip has a rather large FIFO both for sound output or input (64
bytes). It can also be used for other things. In theory, it could be made
to work almost exactly the same way it does on the Q40/60.

In principle, I have nothing against high frequency periodic (polling)
interrupts but they sometimes use up more time than one would think -
because they poll hardware which is VERY slow compared to memory - so it's
a good idea to keep the frequency the lowest one that still does the job.
The real question is what that lowest frequency is. At this point I have
not researched in great depth, but the hardware which generates the
interrupt is programmable and the frequency can be chosen from a wide
range.

Nasta

Reply via email to