Subject: Re: AmigaDOS (Was: Re: where can I get Software for 68k NetBSD ?)
To: Ignatios Souvatzis <is@jocelyn.rhein.de>
From: Bruce Drake <bruce@synxcti.com>
List: port-amiga
Date: 04/15/1998 10:18:30
Hello all!
Having been on the team that converted the AmigaDOS C: commands into 'C'
from BCPL for the 2.0 release, I can add some info and perspective here
(for the curious of course).
Many of us may already know that AmigaDOS (as opposed to Amiga OS) was
ported to the Amiga by MetaComCo. MetaComCo was a shop that owned their
own BCPL compiler, and apparently their main business was developing
operating systems for old DEC PDP systems that could access 256KB of
memory by eliminating the 2 lowest order bits in the address, forcing all
address pointers and all memory accesses to be longword aligned.
Unfortunately, such techniques were only needed when the CPU had only 16
bits in its registers. The 68000 had no such limitation, but the fact
that the DOS was for sale cheap and it did have some design
compatibilities with the overall Amiga OS design, led Commodore to include
MetaComCo's DOS in place of the DOS that was being developed in-house.
The commands in the C: directory came along for the ride, as did the wild
card expression syntax and other things.
All code that had to interact with AmigaDOS's internal data structures
were subjected to the BCPL pointers, which required this nauseating bit
shift any time it needed to be manipulated (slowing down the system
overall).
For 2.0 (called 1.4 back then), John Toebes and friends offered to recode
the C: commands and assist with the design of the new dos.library. We
found that although we were able to remove all of the BCPL code in the
library and commands, we still had to remain backwards compatible with
device drivers that were all written to expect BCPL pointers. So, the
BCPL pointers were emulated in the 'C' code library as necessary. But it
was possible to write code that did not need them for most things. At
least the performance of the DOS improved measuably.
In any case, I think the original library version for AmigaOS that
contained the new dos.library was V34. We did use the current SAS/C
system for production and development. In fact, changes to the compiler
has to be made to accomodate some of the type of coding we wanted to do.
On Wed, 15 Apr 1998, Ignatios Souvatzis wrote:
> > At 11:16 PM 4/14/98 +0200, Ignatios Souvatzis wrote:
> > >> > what did they use for the BCPL parts?
> >
> > >uhm... you talk about modern AmigaOS? It no longer has BCPL, since
> > >at least V36 (corresponding to release 2.0) , I think. :-)
> >
> > Correct. I remember John Toebes talking about the rewrite (that is, before
> > he left ASDF).
> >
> > Although I believe they used SAS/C when they did the rewrite of dos.library
> > at least. Were there any other parts in BCPL other than dos.library? That
> > was the one library that didn't follow the normal library calling
> > conventions (roughly?).
>
> no. At least, not according to Babels "Guru Book".
>
> Regards,
> Ignatios
>
Regards,
-----------------------------------------------------
Bruce Drake, Software Engineer
Synectics, Inc., 3211 Bramer Dr. Raleigh, NC 27604
(919) 872-1275 USA
-----------------------------------------------------
Science is facts; just as houses are made of stones, so is science made
of facts; but a pile of stones is not a house and a collection of facts
is not necessarily science. -- Henri Poincaire