Tripos, the Roots of AmigaDOS

The core of the Amiga Operating systems consists of the three major components Exec (scheduling, memory management, IPC), Intuition (GUI library) and AmigaDOS (process and file management). AmigaDOS is based on the Tripos operating system which Commodore bought because development of their own DOS subsystem failed to meet deadlines. In this article, I am presenting searchable PDFs of the very rare Tripos manuals (638 pages) as well as the AmigaDOS manual (304 pages). Comparing the two documents will share some insight in the relationship between Tripos and Amiga OS.


Tripos Manuals
(PDF, 638 p., 20MB)

The AmigaDOS Manual
(PDF, 304 p., 14MB)

These are the tables of contents of the two documents:

Introduction to Tripos AmigaDOS User’s Manual
1. Simple Use of Tripos 1. Introducing AmigaDOS
2. Editing Files
3. Further Use of Tripos
Tripos User’s Reference Manual
1. Tripos Commands 2. AmigaDOS Commands
2. ED – The Screen Editor 3. ED – The Screen Editor
3. EDIT – The Line Editor 4. EDIT – The Line Editor
Appendix A: Error Codes and Messages Appendix: Error Codes and Messages
Tripos Programmer’s Reference Manual AmigaDOS Developer’s Manual
1. Introduction to Programming 1. Programming on the Amiga
2. Calling the Kernel
3. Calling the DOS 2. Calling AmigaDOS
4. The Macro Assembler 3. The Macro Assembler
5. The Linker 4. The Linker
6. The System Debugger – DEBUG
7. Full Screen Support
8. Floating Point
Appendix: Console Input and Output on the Amiga
Tripos Technical Reference Manual AmigaDOS Technical Reference Manual
1. The Filing System 1. The Filing System
2. Binary File Structure 2. Amiga Binary File Structure
3. Tripos Data Structures 3. AmigaDOS Data Structures
4. Installation
4. AmigaDOS Additional Information for the Advanced Developer

The Original DOS Module of AmigaOS

AmigaOS was architected in a very modular way. “Exec”, the operating system kernel, was responsible for tasks (and therefore scheduling), memory management and the messaging infrastructure. It knew nothing about filesystems or user I/O. The graphics library “Intuition” built on Exec, just like the DOS module, but they were independent of each other. But the DOS module fell behind schedule, so Commodore decided to licenseTripos“.

Tripos

Tripos is, according to “Introduction to Tripos”, “a multi-processing operating system designed for 68000 computers. Although you can use it as a multi-user system, you normally run Tripos for a single user. The multi-processing facility lets many jobs take place simultaneously. You can also use the multi-processing facility to suspend one job while you run another.

Tripos was very similar to the Amiga OS design and therefore fit well. Tripos consisted of a kernel, a DOS library and a collection of user mode tools. Since the “Exec” was already working well, and Intuition depended on it, there was no sense in replacing it with the Tripos kernel. Instead, only the DOS part of Tripos (including the tools) was integrated into AmigaOS.

So the DOS API, the command line interface with its commands, the executable format (“hunk”) as well as the original Amiga filesystem were all basically identical to Tripos.

Comparing the Manuals

Commodore published a number of reference manuals about the Amiga operating system:

  • AMIGA ROM Kernel Reference Manual: Exec
  • Amiga ROM Kernel Reference Manual: Libraries and Devices
  • Amiga ROM Kernel Reference Manual: Includes and Autodocs
  • Amiga Intuition Reference Manual
  • The AmigaDOS Manual

While the former four books were all written from stratch describing new Amiga technology, the AmigaDOS Manual was basically just the Tripos manual set with “Tripos” replaced with “AmigaDOS” and all references to technologies that didn’t make it into the Amiga removed.

You can see from the tables of contents of the two books that The AmigaDOS User’s Manual omitted the chapters about the Tripos kernel (AmigaOS used “Exec”), the debugger (AmigaOS had “ROMWack”), full screen support (everything above simple character I/O was done by Intuition), floating point (Amiga OS contained Motorola’s “MC68343 FLOATING POINT FIRMWARE” instead) and Installation.

What is interesting about the AmigaDOS Manual is that very limited adaption to the Amiga has been performed. The previously quoted definition of Tripos can be found in the AmigaDOS manual as well: “AmigaDOS a multi-processing operating system designed for 68000 computers. […]” While this would be true for AmigaOS, AmigaDOS was only a library and in no way a “multi-processing operating system”.

There are not many real differences between the two documents: The AmigaDOS Manual replaced references to “screen” with “current window” and mentions the new logical devices “LIBS:”, “DEVS:” and “FONTS:” when talking about the filesystem layout. There are also some smaller differences on the command line: There is no MOUNT command (AmigaOS detects disks and automounts), the “C” command has been renamed to “EXECUTE” as well as the “PAR:” device to “PRT:”. The AmigaDOS Manual also contains a section about cross-development on a Sun or MS-DOS machine.

Now I am looking forward to your comments: Did you any other interesting differences? In what way were Exec and the Tripos kernel different? Any other input? Thanks!

23 thoughts on “Tripos, the Roots of AmigaDOS”

  1. Greetinx from Northern Germany. That´s great! Thanx. There´s a “mount”-command, but normally you nver need to use it.

  2. nitpick: Even the AmigaDOS-branded version of tripos maintains some sort of multiprocessing, in the form of corroutines.

    It’s also interesting to see that some part of the system were taken almost verbatim from other sources such as the filesystem or the floating point library.

  3. Hey, that was really interesting, thanks for that!!!
    Didn’t know how similar both systems where.

  4. Huh great stuff! Would be awesome if you could put a RKM (not sure if it’s still protected by copyrights) somewhere on your page. Cheers!

  5. Nice docs and nice post… Thanks yet for this. Such historical and interesting infos REALLY ROCKS !!!

    AMIGAlly yours,

    Arnaud aka bigdan
    from France (north-east near Vesoul)

  6. This is very interesting, thanks for the hard and careful work. Have you also seen the Tripos article on the Amiga Forever CD (Gallery section)?

    • @Mike: I have seen the paper on Tripos that is included on the Amiga Forever CD. Too bad it is not freely available. But the Tripos manuals seems to be a superset of the paper.

  7. Where did you get those? I wrote most of the Tripos one and then my wife Jessica did the work for Commodore – most of it turning UK English into US and as you say altering some of the bits I changed.

    Tripos had a full multi-tasking kernel of its own written in Assembler, using standard shared memory message-passing techniques. EXEC had been written by Carl Sassenrath completely separately but using the same techniques (not surprising as that was pretty much state of art in 1983). So when I came along I simply left the Tripos kernel behind and bolted Tripos over EXEC.

    It was of course completely multi-tasking – there was a process for each file system, a process for each open CLI and so on. A program wanting to read a file say would request data from a filing system process, the requester would wait for a reply from the file system process. If the fs process had the data in a buffer then it was returned at once, otherwise the fs process sent a message to the disk device driver and also waited for a reply. The device driver would request the data and wait for the interrupt.

    The copyright on the first manual is Metacomco (long since bust) and the second Commodore (ditto).

  8. A notable difference between Tripos and the rest of AmigaOS is that Tripos is written in BCPL. BCPL is typeless, and basically uses a big array with indices instead of pointers. This has the effect that all “BCPL-pointers” were the address divided by 4. Every program accessing DOS data had to convert to and from these unusual pointers.

  9. Tim, to your response, as someone who developed on the Amiga and was an enthusiast back in the day, I just wanted to say “Thank you” to you and your wife. You’ll never know the enjoyment I derived from that machine, but I do want you to know that your efforts were ultimately beneficial to someone who regularly contributes to the success of organizations here in my part of the world. It’s not often that the butterfly gets to know who it affected in the flapping of its wings, but I just wanted to say thank for that; for being who you were, when you were.

    -Vince P.
    VincePlatt@yahoo.com

  10. OMG. All these years and I haven’t had a clue about this. Thank you for your very interesting and thorough article. I’m stunned. =) Tripos… mmbbllbmmbmm…. time for some further googling on the subject.

  11. I want to Thank all that worked on or with the Amiga system hardware and software. I have been with machine its early days. Having gone from a VIC 20 through Amiga. Still can’t get away from the machine.

  12. Hi Michael,

    Well done on all your hard work researching Tripos and AmigaDOS. I sold you the Tripos manual via ebay back in 2008, great to see it scanned in and online for posterity.

    Regards,
    John

  13. I realize this is an old thread, but Just read this now. Great read and great info. Just curious, is it pronounced “Try Poss” or “Trip Oh Ess”

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.