|
There have been a number of confusing statements about licences, core
software and patches for the Q60. I do not know whether they confused you, they
certainly confused me.
A licence is not a restriction - it is a permission. The SMSQ/E licence
gives explicit permission to software developers to do a lot of things that they
could not do before. The only effect on "end-users" should be more, better
quality, support (and still free). If you are a software developer, all you have
to do is ask.
SMSQ/E is delivered as a number of modules. The difference between SMSQ/E
modules and Windows modules, for example, is that Windows modules are selected
and linked together (using the registry) for the hardware configuration on
installation (about an hour), whereas SMSQ/E modules are selected and
linked together using "soft" linkage blocks in a few seconds every
time you boot the system. Admittedly, Windows is more complicated - if you were
to include all the core functionality of Windows into SMSQ-E you would need to
wait a few seconds more for it to boot.
The modular structure of SMSQ/E is historical rather than logical. There
are some small modules such as the hardware initialisation module that are
completely hardware environment dependent. There are some large modules that are
completely hardware independent, such as the SBasic interpreter. Most of the
modules, however, have a set of machine independent core routines with hardware
dependent routines and data definitions. In principle, only one version of
SMSQ/E needs to be delivered which has all the different modules for all
machines with only the "right" modules being selected for the configuration. In
practice, the number of different versions bundled together is limited.
To change the behaviour of part of the system, all that a developer /
supplier needs to do is to
replace the module concerned by a new version
add a new module to the end of the operating system "package".
These extensions may
modify the core functions (subject to licence conditions)
add new core functions (subject to licence conditions)
add new luxuries (it would be nice for QL users if you
complied with the licence conditions)
When QLCF contributed towards the development costs of the 16
bit colour drivers for the Q40, it would have been much simpler and cheaper
to have resticted the colour drivers to Q40 colours only. What was
actually developed was a frameword for colour capability from 1 bit to 24
bit with drivers specifically produced for monochrome, QL 2 bit and 3 bit
colours and any 15/16 bit fixed colour scheme.
The sources were then passed to developers for the Aurora and QPC to
develop drivers specifically for their systems.
The intention was to ensure that modified core functions and new core
functions remained as compatible as possible with older versions and across the
new versions. This is the purpose of the licence. All SMSQ/E developers are
building on the back of work done by others. If they make a significant
contribution to the core functions, they may be justified in asking for
royalties for their contribution, but that does not justify their refusing to
share their work with other developers - the principle is open source not
"everyone for himself". The licence conditions are designed to favour this
type of co-operative development.
The effect of the licence conditions can be seen more easily if we sort the
sheep from the goats in the patched Q60 version of SMSQ/E story. Someone
somewhere is confusing two totally separate issues.
The first issue was a bug in the Q40 hardware initialisation module (not in
the SMSQ memory manager (software) as stated in this list, but in the
initialisation of the MC68040 MMU (Memory Management Unit - hardware) ). This
was a one bit error in a 1046 byte SMSQ module. A genuine bug which meant that
some Q40s (depending on the brand of memory module fitted) sometimes ran more
slowly than usual because the caches were disabled. This never happened on my
Q40 and it was the sort of error where you could look at the code a hundred
times and not spot it.
This affected only the Q40 specific version of SMSQ/E and so there was no
impact on other machines. It was fixed in Version 2.99, but the modification was
provisionally made to the V2.98 shipped by Peter Graf.
The second issue was the reduced instruction set for the MC68060. The
MC68060 cannot execute all the MC680x0 instruction set and if you try to run
MC680x0 programs on the MC68060, they quite often crash terminally (reset button
time).
For most modules, replacing the deleted instructions by alternative
code sequences has no real impact on performance on any machine, so this
was done. However, a critical instruction in the QL colour mode drivers is no
longer supported by the MC68060.
The general solution is to provide an "illegal instruction" trap to process
the exceptions generated when the 68060 came across an instruction that it did
not recognise. This is rather slow, but it ensures that the Q60 can also execute
any program that uses the full MC680x0 instruction set.
A module incorporating this solution can be added-on, does not require any
modification to SMSQ/E and provides a slower QL colour mode than the ideal, but
still a lot faster than other machines.
The specific solution is to re-write the QL colour mode driver to eliminate
all "MOVEP" instructions. I had started this work before passing the partially
modified MC68060 routines over to Peter Graf. The modified code works on
earlier processors, but is not as fast. It is, therefore, necessary to provide
separate MC68060 and MC680x0 versions of the GD2 QL mode drivers, even
though they are >99% the same.
One of the registrar's jobs is to ensure that the modifications are
properly recorded. In this case, he would have to ensure that the lower
performance MC68060 version did not crawl through into the "standard" versions.
Naturally, other suppliers of MC68060 based machine could use this version
because it is in the "open source". The Q60 developers would, however, be quite
justified in asking for 1% of the price they paid for the Q40 version of the GD2
QL driver - 1% of nothing is not too much to ask for, is it?
Tony Tebby
|
- Re: [ql-users] Core software and Q60 TonyTebby
- Re: [ql-users] Core software and Q60 Dave P
- Re: [ql-users] Core software and Q60 Wolfgang Lenerz
- Re: [ql-users] Core software and Q60 Marcel Kilgus
- Re: [ql-users] Core software and Q60 Jerome Grimbert
- Re: [ql-users] Core software and Q60 Marcel Kilgus
- [ql-users] Core software and Q60 TonyTebby
- Re: [ql-users] Core software and Q60 Dave P
- Re: [ql-users] Core software and Q60 P Witte
- Re: [ql-users] Core software and Q60 Wolfgang Lenerz
