Slashdot Mirror


Happy Birthday, Amiga

Sebby writes "Today is the Amiga's 20th anniversary. Commodore officially introduced the Amiga 1000 with much fanfare at the Lincoln Center in New York on July 23, 1985. It was the most advanced computer of its day. The Amiga 1000 was originally conceived a few years earlier by a small California company called Amiga, Inc. and was financed by a group of Florida doctors looking to invest in a killer game machine."

4 of 385 comments (clear)

  1. All that I can say by 0xdeaddead · · Score: 5, Insightful
    is that Commodore snatched defeat from the jaws of victory with this one.

    The real problems that plagued the Amiga was the lack of cheap hard disks from Commodore, Later in the Amigas life the lack of memory protection started to plauge the users too... If they actually released, standardized the platform perhaps it would have helped...

    On the otherhad the killer is that everyone that has bought the IP has either died, or promised to do something with it, and done nothing.

    As a plus Amiga's gave rise to smart GPU's, offloaded IO & a better less cpu centric design of cheap computers.

  2. Portions written in BCPL. by CyricZ · · Score: 5, Informative

    It is interesting to note that parts of AmigaOS were written in BCPL, due to its derivation from TRIPOS. BCPL was the predecessor for C, for those who weren't aware.

    AmigaDOS was later rewritten in C for Kickstart/Workbench 2.0. Indeed, it is quite interesting to see that they could create such a fantastic workstation OS (often unmatched feature-wise until the late 1990s by Windows and Mac OS) in a high level language, and running on lower-end hardware.

    --
    Cyric Zndovzny at your service.
  3. Re:Guru Meditation by MagikSlinger · · Score: 5, Informative
    What OS did Amigas run (don't tell me they called it Amigos)? What was it based on? Also why was the OS "far ahead of its time"?

    The whole collection of components was called Kickstart (because it was the low level OS) and the GUI interface component was called the Workbench.

    the Amiga OS was largely written from scratch with the exception of the AmigaDOS component (Filesystem/Disk manager) which was written in BCPL based on a legacy DOS that was available. AmigaDOS was a last minute addition which is why it wasn't written from scratch.

    The OS was the first desktop computer to use a microkernel approach where all the components of the OS were independent objects which communicated via message passing. It also was the first desktop OS to provide pre-emptive multi-tasking but because it didn't have a "smart" scheduler, the system could still be brought to its knees with busy-loops.

    There were many features that made the Amiga's OS a joy. The filesystem layout of a separate library (equiv of DLLs) and font directories made keeping your installation clean a breeze. In fact, in Kickstart/Workbench 2.0 and up, you could do the UNIX trick of specifying an environment variable for your library and font paths so you could have MULTIPLE library and font directories. In fact, the Amiga environment variable system was implemented as a RAM drive so it could have directory structures. Fond memories of setenv "SASC/scoptions" -g.

    Device I/O was asynchronous. You passed and received messages to the hardware while your code could go off and do other things. Where this really made a difference was in the Sound device which allowed some fairly inventive sound mixing to go on because while the sound device went off to play your sample, you could mix up the next sample for it to play. In the mid-80s, no one was doing that on a desktop/home PC.

    The GUI library, called Intuition, had a nice clean design. Things were properly partitioned into their own libraries/modules and the API was clean and easy to learn. The designer of Intuition said his only regret was he couldn't make it into a pure device for completely asynchronous operation.

    The message scheme of the Amiga is still, IMHO, the best there ever was. Based on what amounted to a primitive C-based version of classes, you allocated a structure for your message, filled out the required fields and sent it to a Message Port. You could wait around for a response, or do other things while periodically checking on the message port. This made creating event driven code a dream. With one function call, I could watch a dozen MessagePorts (or just one, actually -- a MessagePort could receive any message). With that one call, I can listen for:

    • Input events
    • Sound device responses
    • TCP/IP connection requests or data received
    • Messages from other processes
    • AREXX messages

    Trying to do the same thing in Windows was a severe pain until very recently, and even now, it's still a pain.

    The Amiga had its flaws. For example, by chosing the cheaper 680x0 processors, the Amiga never had memory protection or virtual memory which made for some fun crashes. The memory allocation code was such a piece of crap that if you weren't careful, you could fragment all of the system memory and even other applications would be affected (see the no memory protection or virtual memory flaw). Also as mentioned, the pre-emptive schedule did not adapt to "bad" programs such as programs doing busy loops.

    All in all, it was still a dream. I still miss programming it. The NeXTStep OS is the closest I've ever seen any other OS get to it.

    --
    The bitter lessons of a veteran coder: http://bitterprogrammer.blogspot.com
  4. Happy birthday, Amiga by Malor · · Score: 5, Informative

    I have often said that had Apple been selling the Amiga, we'd all be running offshoots of that platform, rather than the PC. It was ten years ahead of its time, and I mean that almost literally; it wasn't until 1994, running Linux, that I could get even CLOSE to what I could do on my Amiga in 1985.

    In looking back, it is amazing the number of things they absolutely nailed wih the Amiga. It was the first machine to use fully-programmable custom chips for sound and graphics support. That hardware was immensely powerful; it could do memory copies (the blitter), palette shifts (the "copper", and I don't remember why it was called that anymore), sprites, collision detection, four-channel stereo sound, and probably many other things I'm forgetting, without even using the main CPU at all. (well, except to set things up, at any rate.)

    The system could display separate programs with separate resolutions and color palettes on the same screen at the same time. You could literally grab the Workbench screen and drag it down, revealing some cool demo running behind it..."Boing!" in the top half, Workbench in the bottom. This was done by some clever copper tricks... on the fly, over the space of about two scanlines, the copper would shift the entire display mode and palette, and start displaying screen data from a different arbitrary program.

    Later, a variant on this technique was used to create the best graphics the Amiga could manage...Sliced HAM, or S-HAM. The default 'high color' graphics mode, HAM, could have any 32 base colors out of the palette of 4,096. Any pixel could either have one of the base colors, or it could H)old the color of the previous pixel A)nd M)odify either the red, green, or blue component. S-HAM took this a step further, and swapped the base 32 colors on *every scan line*, so that you could have many more colors available. Some of the S-HAM pictures were absolutely stunning. It did, however, put a huge load on the graphics hardware... the machine really crawled when running that mode. So it was really only useful for slideshows... you couldn't animate that mode, to my knowledge.

    Then, on top of that, they mostly nailed the OS. There were three major components to the AmigaOS; Exec, Intuition, and AmigaDOS.

    Exec was the multitasking core, what we'd probably think of as the kernel in Linux land. It was immensely efficient. The task switching method that RJ Mical came up with was so fast that it ended up going into the Motorola programming manuals. I can't find the numbers offhand, but I believe the Amiga could task switch in less than twenty clock cycles. Whatever the actual number was, it was FAST.

    Intuition provided the windowing libraries; it was what kept windows properly layered and coordinated, and routed user input. That would be roughly the equivalent of X, though much simpler. Workbench, the built-in graphic UI, was an optional load; you could stay in 'console mode' if you wished. The Amiga had no true text-only mode, however. Even if you had just a single CLI window open with nothing else, it was still drawn in graphics mode. (scrolling on the Amiga was never very fast because of this).

    AmigaDOS, I believe, did all the disk and file I/O. It was rather Unixish, but it was very slow and had an absolutely horrible user interface. (Fortunately, it was easy to replace the DOS programs with better ones, and most people who really used their machines did so.) Filesystems were abstracted too, which was a good thing.... the early filesystem on the Amiga was very fragile and very slow. Later on, the Fast File System was introduced, which sped things up a heck of a lot. With FFS, hard drives were quite comfortable, but floppies were never very good. There were many special custom loaders that sped things up (much like on the C64), but the floppies were always slow, no matter what.

    Of the three major components of the OS, AmigaDOS was the weakest, and was responsible for a lot of the early (justified) griping about the pl