On 2 January 2012 19:44, Tony Duell <ard at p850ug1.demon.co.uk> wrote:
I have been
slightly curious about OS-9 for years. I wonder if I can
It's a very nice OS given the sort of machines it ran on.
It'smultitalksing and even multiuser, it's device-independant (like unix,
oyu can direct progam output to any device or to a file), it has a
directory tree structure (a lot of the OSes for 8 bit micros didn't have
subdirectories at all), and it's very modular (you can load new modules,
decvice drivers, etc even when the system is running). And that would run
on a 1MHz 680 with 64K RAM.
[..]
I've been Googling and reading up on BASIC09.
It certainly does sound
impressive, although a bit more primitive than BBC BASIC.
Did it have any graphics or sound facilities?
THe simple answer is 'no', but there's rather more to it that that.
Does C have grapgics or sound facilites? The only mentions of graphics I
can find in K&R is defining structs for points, rectangles, etc. The only
mention of sound I can fidn is that \a produces a bell character.
But of course we all know you can write graphics and sound programs in C.
There will generally be libraries of functions to perform particular
operations (plot a point, draw a line, fill an area, etc). You call those
from your C program.
One advantage of languages like C is thst there are extendable. You can
have libraries of extra functuions that cna be used like hte built-in
functions of the language. The same applies to to many other languages
(forth being an obvious example).
In genral, BASICs were not extendable like that. It is very difficult to
add new keywords ot a BASIC interpretter, and the way to do it is not
often docuemnted. Suppose you took a typicval 8 bit micro (say a C64 or a
Spectrum) and interfaced it to a high-resuloution grapgics unit. There's
no easy way to add or rewrite commands line LINE or SET.
BBC BASIC is a better. You can write soem PROGs to call machine language
routines (if necessary) to talk to your hardware. Even so, you have to
write some part of it in BASIC (the definitions of the PROCs), and the
names of the added commadns all start with PROC. But it's certianly a lot
nicer than most other BASICs.
But BASIC-09 lets you call add-on routines. They're essentially OS-9
modules. You could write hte graphics routines in any language you like
and call them from a BASIC-09 program. Adding graphics and sound routines
is entirely possible, just as it is in C.
Fair enough. That aligns BASIC09 and perhaps all of OS-9 firmly with
the minicomputer and multiuser end of the OS spectrum. BASIC's
stronghold - at least in my lifetime - was on home micros and graphics
and sound facilities were part of that remit. It was, for me, one of
the greatest weaknesses of the Commodore line of home computers - the
VIC-20, Commodore 64, C128 and so forth - that their BASIC was very
primitive, had no commands for structured programming and, crucially,
no commands for sound, graphics, colour or any of the media facilities
of the underlying hardware.
I don't know much about the Dragon and CoCo, but they certainly had
competent graphics and sound, and as they were the first platforms I
ever read of for OS-9, I thought that maybe the CoCo/Dragon versions
of OS-9 and BASIC09 had media facilities.
For myself, TBH, I was always mainly interested in graphics, and that
is what I mostly did in BASIC. Trivial and childish it might be, but
then, I /was/ a child at the time! Back then, a BASIC with no
*built-in* graphics facilities would not have interested me at all.
Now, well, yes, a little different, but it's mainly what I used to
play with.
One of the things that frustrates me with C21 OSs and languages is
that the graphics facilities of machines are locked away behind the
high walls of libraries and APIs designed for professional developers
- which are simply too hard for an interested amateur such as myself.
And yes, in programming terms, I am very much an amateur!
--
Liam Proven ? Profile:
http://lproven.livejournal.com/profile
Email: lproven at cix.co.uk ? GMail/G+/Twitter/Flickr/Facebook: lproven
MSN: lproven at
hotmail.com ? Skype/AIM/Yahoo/LinkedIn: liamproven
Tel: +44 20-8685-0498 ? Cell: +44 7939-087884