Monday, June 10th, 2024

British operating systems, part two
===================================

Besides RISC OS,  there is  another family  of operating systems  from
Great Britain  that  is  even closer  to me:  Sinclair  QDOS  and  its
successors.

In 1984,  Sinclair released  the QL computer,  which was intended  for
business use. It had a more powerful processor (68008 instead of Z80),
a higher  screen resolution  (512x256,  4 colors),  and a multitasking
operating system. The QL was deliberately introduced a couple of weeks
before  the Macintosh,  making it  the first  on the market  among the
Macintosh 128k /Atari ST /Amiga 1000 /Sinclair QL quartet. This, along
with the effort to keep the price  as low  as possible,  significantly
influenced how the computer looked,  not only in terms of hardware but
especially in terms of the user interface.

Mac and Atari ST prioritized  mouse-controlled GUI  over multitasking.
Amiga 1000,  which was the last  of the four  to arrive,  had a mouse,
windows, icons,  and multitasking. The Sinclair QL had neither a mouse
nor a nice GUI,  but it had full preemptive multitasking,  even though
the entire  QDOS operating system fits into a 48kB  ROM.  Compare this
with  single-task  Atari TOS,  which  needed  192kB  ROM,  single-task
Macintosh System Software,  which had 64 kB ROM  and still booted from
a disk, or multi-task Amiga OS, which started with 256 kB ROM and also
had its desktop on a disk.

Tony Tebby, the main developer of the system,  had previous experience
with  Unix workstations,  and his  goal was  to create  a machine with
similar capabilities  but without  the need  to work with a Unix shell
and  C programming language.  He  chose  BASIC  as the user interface,
which was  a de facto  standard  on 8-bit computers,  but here it  was
significantly more capable and could be extended  with new commands by
simply loading their definitions into the system. 

QDOS starts with three "windows":  at the bottom is  the command line,
where commands are entered and executed immediately,  or if they start
with a number,  they are stored  to be executed  later using  the  RUN
command.  Above this are two other windows: the white one contains the
listing of the currently entered program, and the red one contains the
output from the running program. Everything is handled by I/O channels
so everything can be redirected (to disk, tape, network, serial port),
the size and border of windows can be changed from BASIC,  new windows
can be opened, their colors set, fonts changed, etc.

Although QDOS is a multitasking OS,  due to the limited memory  of the
original  QL,  the BASIC interpreter can only run  once.  Machine code
tasks,  however,  can run as many as the memory can hold. The computer
was  shipped with an office suite from Psion,  which  included  a word
processor,  spreadsheet, business graphics editor, and database. Users
typically loaded  all these programs  into memory after turning on the
computer,  sometimes  even  multiple  times  depending  on  the number
of documents they needed to work with,  and then just switched between
running tasks.

Unfortunately Sinclair Research begun facing problems  around the time
the QL  was released.  The computer  was announced  with  a promise of 
early sale long before it was ready,  so deliveries began with delays,
and  the shipped units  were not always fully functional.  The company
was  also working  on the C5 electric vehicle,  which was a flop,  and
before  the QL  could  consolidate  and establish  itself,  the entire
company was bought  by the rival Amstrad,  which immediately halted QL
production to avoid competition with  its own line  of budget business
computers, the PCW, much simpler  (Z80,  CP/M),  albeit more expensive
machines than the QL.

Rights to the QDOS system  and  the QL computer were never transferred
to anyone,  so  further  development  was  in the hands  of unofficial
hardware producers  and system  reimplementations  based  on available
documentation. One of these reimplementations was called  Minerva ROM,
which fixed a large number of bugs that weren't dealt with by Sinclair
Research,  significantly  sped up  most functions,  and added some new
functionality;  for example,  the OS can use  two independent screens, 
that the QL had from  the beginning,  but the original QDOS could only 
use one of them.  Minerva ROM runs both  on clones that  emerged after
the QL,  or it can be installed in the QL itself.  To this day, in its
latest version,  it is  the best system  for the original,  unmodified
computer.

The best QDOS reimplementation, if you are not limited by the original
hardware,  is SMSQ/E,  developed independently by Tony Tebby  for more
modern hardware than the original QL (Atari ST, Q40,  Q60,  Q68, or at
least QL with a turbo card). While it runs the QL software without any
modifications  and  the interface looks fundamentally  the same,  it's
a significantly  enhanced  system. SMSQ/E  offers  full  multitasking,
including the BASIC interpreter, dozens of new BASIC commands, command
line  history,  support  for multiple  graphics  modes  (depending  on
the  computer  on  which  the  system  runs), etc.  It also integrates 
the Pointer Environment,  a mouse-controlled graphical  interface with
a desktop,  windows,  and  other elements common  on modern computers.
Pointer Environment also exists  as an extension for Minerva and QDOS,
but here it is already included in the system[1]. 

Due to the small user community and the development being led by a few
individuals for  a long time, systems like SMSQ/E,  Minerva,  and even
the original QDOS have many unique features. It took me  quite  a long
time to learn to use this system, perhaps even longer than with Plan9.
But once I understood the basic principles,  I couldn't resist getting
a couple of QLs, and I'm currently waiting for the completion of a new
batch of the modern FPGA computer Q68 running SMSQ/E,  in which I have
one unit pre-ordered.  What a shame that British operating systems  do
not rule the world!

[1] gopher://i-logout.cz/I/phlog/posts/2024-06-10_smsqe_screenshot.png