On 1/8/02 at 2:11 PM Thierry Godefroy wrote: > Actually, the graphic cards device drivers are probably the most > complicated and sophisticated ones (especially when you take all > "ancillary" extensions into account, such as the pointer environment)... > I for one would hesitate to write such a driver from scratch (there > the sources availibilty of existing drivers is more than a critical > prerequisite) ! I think that the only one who is able to write such > drivers is... TT himself (with the QXL or Q40 SMSQ/E sources, I guess > this could be implemented in a few days...).
I can only agree on this, but then it should be obvious that the way the drivers and the ancillary parts connect should be at least better documented, or even partly rewritten for better 'separation' - in fact the same should be true for the drivers themselves. It makes changes and rewrites much easyer. OTOH, radically new graphics hardware only comes along relatively rarely, I think that GD2 probably achieves most of the above - but things like Phoebus' mouse question show that the available documentation is inadequate. BTW one of the reasons Aurora stopped at 256 colors (the biggest one being the available screen memory size) because at the time there was no way to pass more than 8 bits for color information in any of the commonly used routines, and investigations by Phill Borman had shown that the 16 bit color specification code was not really there. >Mind you, I did download all the specs of the GF a while ago (you even sent >me some) and I did read _some_ but, here again, time is the limiting factor >;-( There are very few people who have the knowledge and will to understand the aspects of the hardware as required for programming low-level stuff. You are one (out of three or so) exceptions :-) >I must confess, that I do like a lot the onboard Ethernet concept... :-) Actually, this has proven to be a problem - not because of the design which is very simple, but because of the rather unreasonable pricing for the chip. OTOH there are alternatives, which are more reasonably priced, but then you have to buy them in increments of 1000, which pretty much makes the price difference irrelevant. SMSC (the manufacturer of the chip I chose for the design) now has a 10/100 non-PCI chip, which is even simpler to use. The 'toast' board referenced on this list has sown me a way to save some more (precious!) space on the board by using RJ45 jacks with integrated magnetics - Ethernet requires electrical isolation which is normallyaccomplished by a (relatively hard to find!) small transformer (looks like a slightly larger chip) - one more problem component, which is not that expensive, but difficult o find in small quantity. Redesigning the 'tile' of the GF PCB containing the ethernet to use the new 10/100 chip is not a problem at all, but one has to wonder about using a 10/100 chip connected to an 8-bit data bus. The later is a design decision to do with actually making the board routing possible. GF does alow extremely fast cycles over the 8-bit bus, though, so it might be worthwhile - if the new chip is priced reasonably. >Yes, I think I can remmember about a few emails we exchanged about the GF >design and interrupts management... ;-) Yes, and it was more or less the concensus that it should be implemented the way I designed it, and have the software cope... which may be a problem as history proves. >> Well, there's the GF stuff - feel free to open fire. > But as much as I can understand, the actual specs are quite a bit outdated > (ColdFire based, while the processor of your choice is now a 68EC060 IIRC), > aren't they ? ;-) Actually, from teh standpoint of the software designer, very little has changed. Except for the differences between 68EC040/5102 and 68EC060 (cache size, no MOVEP, etc) almost everything remains the same. Some interrupt lines may get removed as it became obvious less interrupt routability is needed, but the basic structure remains. The sound chip will be an AD1816 and there is no more provision for AD1815 - but both look exactly the same to the software so no changes. Even if I decide to use the 10/100 chip for ethernet, that is 99.9% register compatible with the previously used one (of course, 100Mbit stuff was added). Some base addresses for the IO may change but register assignments remain the same, etc. >>>Soon the motivation will result from the choice: PCI support or no more >>>cheap add-ons for the "QL" plateforms... > >I don't deal with the present situation (there are still a few ISA cards >available), but with the _future_ one: if there is no PCI-based successor >to the Q60, then what the hell a future (say in five years) Q60 buyer will >be able to use with it ? No ISA card = no floppy, no harddisk, no serial >port, no parallele port, no network, no nothing but graphic, sound and >keyboard ! Actually, you won't be helped much by javing PCI in either case as most of these devices are integrated onto motherboards, and on the chip level, appear either in a chipset or a super-IO chip. The later are actually a problem - while in the past most if not all used to be ISA based, today it's nearly all LPC - which is not at all easy to implement (it's a sort of cut-down PCI that multiplexes ISA signals onto 7 pins or so). Still ISA based chips are vailable in numbers because they are used on embedded products. The proper way to 'save' the Q40/60 against ISA card dissapearing, is to produce a Q40 speciffic 'ISA' IO card. This could easily be a combo-card, which would also solve the 'only two slot' problem. All of the functions you mention except network (but then also some additional ones) are actually implemented by one single chip. An additional chip would give you 10/100 Ethernet. One more, and you have full 16 bit sound. And what you have then is exactly the IO chip setup found on the GoldFire. Granted, it would not be a cheap card because it would have to compete with old ISA cards you get for free. The advantage would be that it could have evereything needed, implemented in a way that best agrees with the Q40. OTOH, the number of Q40 + Q60 is bound to be a LOT less than the number of available old ISA IO cards... >> I am not opposed to PCI on a QL hardware platform as a bus, rather as a >> bunch of connectors into which the user can plug in any old PCI card and >> then expect it to magically work - this is like opening a can of worms. > >I am not prentending that "we" (TT, Mark, George, Wolfgang, myself, ...add >any remaining assembly programmer I forgot here...) should implement ALL >PCI cards (and moreover all brands and models) support: this is next to >impossible (even for a handfull of excellent assembly programmers working >full time for a full year) ! I just say that we _could_ support _some_ >(OK, let's say "just a very few") basic PCI cards (I/O, Ethernet, Sound, >perhaps even simple graphic cards). Providing PCI slots on a 'motherboard' would actually result in expectations for them to be usefull, which is OK - but your limits onto what can be plugged in, will soon result in restrictions even worse than ISA. ISA enforced address compatibility, and also in the case of the peripherals we want, register compatibility. Not so with PCI - out of all the various PCI devices of interest, as strange as it sound, only the VGA would actually be relatively similar regardless of which one is plugged in - as long as it's used as a standard VGA (possibly with some VESA extensions). The question remains, wether this is worth the cost of the PCI. To give you an example: when considering a PCI QXL based on the 5102 ColdFire (which was more expensive in those days than it is now), the PCI to CPU bridge cost twice the price of the CPU! Unfortunately, things have not improved there at all :-( If you look at it that way, it's actually far more cost effective (remember, include the cost of the required software, and the time required to write it!) to design and build that Q40/60 speciffic ISA board - or maybe even redesign the whole motherboard to include all that on it. Nasta