AROS ​​Vision

Modern and free Amiga-Compatible Experience on Amiga and PC

Article 20: How the Complete Amiga Works From Power-On to Applications, Graphics and Sound 

During this course, we have examined the Amiga piece by piece. 

We looked at:
the Motorola 68000 CPU
Chip RAM and Fast RAM
Agnus, Denise and Paula
the Copper and Blitter
DMA
interrupts
Exec
tasks and processes
signals and message ports
libraries and devices
AmigaDOS
filesystems and handlers
Intuition and Workbench
direct hardware programming

  
Individually, each of these subjects is interesting. But the real beauty of the Amiga becomes visible when we connect them. The Amiga is not simply a CPU controlling a collection of peripherals. It is a system in which the CPU, operating system, memory and specialized hardware cooperate. This final article brings those pieces together. 

1. The Amiga as a Complete System 

At the highest level, we can imagine the computer as several layers:
Users
  |
  v
Applications / Workbench / Shell
  |
  v
AmigaOS
  |
  +-- Intuition
  +-- Graphics
  +-- AmigaDOS
  +-- Libraries
  +-- Devices
  |
  v
Exec
  |
  +-- Tasks
  +-- Memory
  +-- Signals
  +-- Messages
  +-- Interrupts
  |
  v
Hardware
  |
  +-- CPU
  +-- Chip RAM
  +-- Fast RAM
  +-- Agnus
  +-- Denise
  +-- Paula
  +-- Copper
  +-- Blitter 

This model is simplified, but it provides an excellent framework for understanding the whole machine. 

2. It Begins with Power-On 

When the Amiga is switched on, the processor begins executing code from the system's ROM environment. This brings Kickstart into the picture. Kickstart contains essential parts of AmigaOS needed to bring the system to life. 

Conceptually:
Power on
   |
   v
CPU reset
   |
   v
Kickstart ROM
   |
   v
Core system initialization 

Before Workbench can appear, the machine needs a functioning operating-system foundation. 

3. Exec Comes to Life 

One of the most important components of this foundation is:
exec.library 

Despite the .library name, Exec is effectively the kernel at the heart of classic AmigaOS. 

Exec provides core mechanisms including: 
multitasking
task scheduling
memory management
signals
message ports
libraries
devices
interrupt management

Once Exec is operating, the Amiga has the foundations required for a multitasking operating system. 

4. Exec Discovers Memory 

The system must also determine what memory is available. 

An Amiga may contain several memory regions:
Chip RAM

Fast RAM

Expansion RAM

Exec can manage these as separate memory regions with different attributes. This matters because not all RAM has the same capabilities. 5. Chip RAM Connects CPU and Custom Chips Chip RAM is central to the architecture because both the CPU and the custom chipset can access it.

              Chip RAM
               /    </span>
              /      </span>
            CPU    

Custom Chips Graphics, audio and other DMA data frequently need to reside here. 

Typical examples include:
Bitplanes
Sprites
Audio samples
Copper lists
Blitter data

Chip RAM therefore acts as a shared workspace between software and custom hardware. 

6. Fast RAM 

Gives the CPU Its Own Workspace Fast RAM serves a different role. On a classic Amiga, the custom chipset does not normally use ordinary Fast RAM for its DMA operations. 

Therefore:
CPU ---> Fast RAM does not involve the same competition with chipset DMA traffic that occurs when the CPU accesses Chip RAM. 

A useful simplified model is:
                 CPU
                /   </span>
               /     </span>
         Fast RAM   Chip RAM
                       |
                 Custom Chips 

Program code and CPU-oriented data benefit greatly from Fast RAM. 

7. Why Memory Location Affects Performance 

Suppose the CPU works from Chip RAM while display DMA, audio DMA, Copper and Blitter activity are occurring. They all depend on access to the shared memory system. 

Conceptually:
CPU ------</span>
Display ---</span>
Copper -----> Chip RAM
Blitter ---/
Audio ----/ Available memory bandwidth must be shared. If CPU code and data can instead use Fast RAM:
CPU ----------> Fast RAM


Display ----</span>
Copper ------</span>
Blitter ------> Chip RAM
Audio -------/ the CPU can perform more work independently. 

This is why adding Fast RAM can make such a dramatic difference. 8. Expansion Hardware Joins the System The Amiga was designed to be expandable. 

Additional hardware might provide: 
Fast RAM
hard disks
network interfaces
faster processors
graphics hardware
additional I/O

The operating system can incorporate various additional resources through its modular architecture. This is one reason concepts such as devices, libraries and memory regions are so important. The system does not have to consist only of the hardware present in the original base machine. 

9. The Boot Device Is Found 

Once the low-level system environment is operating, the machine can locate a bootable device. 

This might be:
Floppy disk or:
Hard-disk partition 

The appropriate storage infrastructure allows AmigaDOS to access files. We now move from hardware-oriented startup toward the user environment. 

10. AmigaDOS Builds the File Environment 

AmigaDOS provides high-level concepts such as: 
files
directories
processes
volumes
assigns
command execution

The filesystem hides the physical details of storage from applications. 

Instead of thinking about sectors and disk tracks, software can request something like:
Open "Work:Documents/Letter" The layers underneath resolve the operation.
Application
     |
     v
AmigaDOS
     |
     v
Handler / Filesystem
     |
     v
Device
     |
     v
Storage hardware 

11. Assigns 

Create the Logical System Layout During startup, the Amiga environment establishes important logical names such as:
C:
S:
L:
LIBS:
DEVS:
FONTS:
T:
ENV: These allow software to refer to logical functions rather than fixed disk locations. For example:
LIBS: means, conceptually: the location where the system expects libraries. It does not have to mean:
DH0:Libs This makes the operating-system structure much more flexible. 12. Startup-Sequence Configures the System One of the central files in a traditional Amiga boot is:
S:Startup-Sequence It contains AmigaDOS commands that help construct the working environment. Conceptually:
Kickstart
    |
    v
Boot device
    |
    v
AmigaDOS
    |
    v
S:Startup-Sequence
    |
    +--> assignments
    +--> system commands
    +--> configuration
    +--> additional components
    |
    v
User environment 

A significant part of the visible AmigaOS system is therefore assembled during startup rather than being one enormous fixed program. 

13. Libraries Provide System Services 

Applications do not normally need to perform every operation themselves. They can use operating-system libraries. 

Examples include:
graphics.library
intuition.library
dos.library
utility.library 

An application traditionally opens the library it requires:
OpenLibrary() uses its functions, and later calls:
CloseLibrary() 

This creates a modular environment where system functionality is shared. 

14. Devices Provide I/O Services 

For lower-level input and output, AmigaOS provides devices. 

Examples include:
trackdisk.device
serial.device
parallel.device
timer.device
console.device 

Applications interact with devices using I/O requests. 

A device operation may be synchronous:
DoIO() or asynchronous:
SendIO() Asynchronous operation fits particularly well with Amiga multitasking. 

15. Tasks 

Make Multitasking Possible Exec organizes running software into tasks.

Suppose several programs are active:
Workbench
Editor
Terminal
Clock
Shell 

Exec determines which ready task receives CPU time. 

Conceptually:
              Exec Scheduler
                    |
     +--------------+--------------+
     |              |              |
   Task A         Task B         Task C
     |              |              |
 Workbench        Editor          Shell 

To the user, several programs appear to operate simultaneously. 

16. Waiting Is Just as Important as Running 

Multitasking would be inefficient if every program consumed CPU time while waiting. Imagine a text editor with nothing happening. 

It does not need to perform millions of loops asking:
Keyboard input?
Keyboard input?
Keyboard input? 

Instead it can wait.
Task
 |
 v
Wait()
 |
 | sleeping
 |
Event occurs
 |
 v
Signal
 |
 v
Task becomes ready 

The CPU can meanwhile perform useful work elsewhere. This is one of the fundamental reasons the Amiga's multitasking system is efficient. 

17. Messages Connect the System 

AmigaOS makes extensive use of message passing. 

Messages appear in areas such as: 
Intuition
device I/O
DOS handlers
inter-process communication

The basic idea is:
Task A
   |
   v
Message
   |
   v
Message Port
   |
   v
Task B 

Signals can notify Task B that something has arrived. 

This creates an elegant relationship between:
Tasks
Signals
Messages
Ports 

18. Intuition 

Creates the GUI Environment At the user-interface level we encounter:
intuition.library Intuition manages important GUI concepts including: 
screens
windows
gadgets
menus
user interface events

An application might ask Intuition to open a window. 

Conceptually:
Application
     |
     v
Intuition
     |
     v
Window 

The application then receives user-interface events through the system's message-based mechanisms. 

19. Workbench Is Not the Entire GUI System 

This distinction is important:
Workbench != Intuition Workbench is the familiar graphical desktop environment. Intuition provides underlying GUI mechanisms used by Workbench and other applications. 

Conceptually:
                Intuition
                /       </span>
               /         </span>
        Workbench       

Application A program can use Intuition without being part of the Workbench desktop itself. 

20. The User Opens a Program 

Imagine that the user double-clicks an application icon.

At a simplified level:
User
 |
 v
Workbench
 |
 v
Application startup
 |
 v
DOS Process / Exec Task
 |
 v
Program runs 

The new application now becomes another participant in the multitasking system. 

21. The Program Allocates Memory 

Our application now needs memory. For normal calculations it might request ordinary or Fast RAM. For chipset-accessible graphics it may require Chip RAM. 

Conceptually:
Application
     |
     v
Exec memory request
     |
     +--> Fast RAM
     |
     +--> Chip RAM 

Exec manages which blocks are free and which are currently allocated. 

22. The Program Opens a Window 

The application requests a window through Intuition. Afterward, it may spend much of its time inside an event loop.

Open window
     |
     v
Wait for event
     |
     v
Process event
     |
     v
Wait again 

When nothing happens, the application can sleep. When the user interacts, Intuition delivers the appropriate event information. 

23. Mouse Input Travels 

Through Several Layers Consider something as simple as clicking a gadget. 

Conceptually:
Mouse
  |
  v
Input hardware/system
  |
  v
Intuition
  |
  v
IntuiMessage
  |
  v
Message Port
  |
  v
Signal
  |
  v
Application wakes
  |
  v
Processes click 

What appears to the user as a simple mouse action actually involves several levels of the system. 

24. The Program Loads an Image 

Suppose the application now loads a picture from disk. 

At a high level:
Application
     |
     v
dos.library
     |
     v
Filesystem
     |
     v
Storage device 

The resulting data is placed in memory. Perhaps the image must then be converted into a format suitable for display. CPU-oriented processing may take place in Fast RAM. The final hardware-accessible bitmap may reside in Chip RAM. 

25. Graphics Enter the Custom-Chip World 

Now the operating-system and hardware worlds meet. Suppose the bitmap contains several bitplanes.

Chip RAM
 |
 +-- Bitplane 1
 +-- Bitplane 2
 +-- Bitplane 3 

Display hardware needs repeated access to these planes. The CPU does not have to copy every pixel to the display output. Instead, DMA fetches the bitplane data. 26. Agnus Coordinates DMA Agnus plays a central role in the shared Chip RAM architecture. 

The custom chipset needs memory access for: 
bitplanes
sprites
Copper
Blitter
audio
disk-related operations

Agnus coordinates important DMA activity and Chip RAM access. 

Conceptually:
                  Chip RAM
                      |
                    Agnus
             +--------+--------+
             |        |        |
          Display   Copper   Blitter 

The exact hardware relationships are more detailed, but this gives us the essential idea. 

27. Denise Helps 

Create the Picture The graphics data fetched from memory ultimately contributes to video generation. On OCS/ECS Amigas, Denise has a central role in turning graphics information into the visible display. 

Conceptually:
Chip RAM
   |
Bitplane DMA
   |
   v
Graphics hardware
   |
   v
Denise
   |
   v
Video output
   |
   v
Monitor 

The CPU therefore does not generate the complete video signal in software. Dedicated hardware performs that job.

28. The Copper 

Changes the Display While It Is Being Generated A Copper list resides in Chip RAM.

Chip RAM
   |
   v
Copper 

The Copper can wait for selected raster positions and change hardware registers. 

For example:
WAIT line 80
MOVE color
WAIT line 150
MOVE another color 

The display can therefore change while a frame is being generated without requiring continuous CPU intervention. 

29. The Blitter 

Moves Graphics Suppose the application needs to move or combine graphical blocks. The CPU could process every word manually. But the Blitter can perform many such operations.

CPU
 |
 | configure
 v
Blitter
 |
 | DMA
 v
Chip RAM 

The CPU specifies: 
source addresses
destination address
size
masks
shifts
logical function

The Blitter then performs the operation. 

30. CPU and Blitter Work Together 

While the Blitter performs a graphical operation, the CPU may work on something else. 

For example:
CPU                    Blitter
 |                        |
Game logic             Draw object
 |                        |
AI calculations        Clear area
 |                        |
Input handling         

Finish If the CPU is working largely in Fast RAM, this parallelism becomes particularly effective. 

31. Paula Handles Audio 

Now suppose the program also needs sound. Audio data can be placed in Chip RAM. 

The CPU configures Paula with information including: 
memory address
sample length
period
volume

Then:
Chip RAM
   |
  DMA
   |
   v
Paula
   |
   v
Audio output 

The CPU does not have to feed every sample manually in real time. Paula handles the repetitive playback process. 

32. Four Audio Channels 

The classic Amiga provides four DMA-driven audio channels. 

Conceptually:
             Paula
        +------+------+------+------+
        |      |      |      |
       Ch0    Ch1    Ch2    Ch3
        |      |      |      |
        +------+------+------+
               |
               v
           Audio output 

This was one of the Amiga's most striking multimedia capabilities when the platform appeared. 

33. Interrupts 

Bring Hardware Events Back to the CPU DMA allows the CPU to delegate work. But eventually hardware may need CPU attention. That is where interrupts enter the picture. 

For example:
Hardware operation
        |
        v
Event occurs
        |
        v
Interrupt request
        |
        v
68000 / system
        |
        v
Interrupt handling 

Hardware and software therefore communicate in both directions. 

34. The Complete Communication Cycle 

This gives us a very important pattern:
        CPU
         |
         | configure
         v
      Hardware
         |
         | DMA
         v
      Memory


      Hardware
         |
         | interrupt
         v
        CPU 

The processor controls the operation. The hardware performs repetitive work. The hardware then reports important events. This pattern appears throughout the Amiga. 

35. A Complete Frame of a Game 

We can now imagine what happens during one frame of an Amiga game. 

Step 1: Input The CPU reads or responds to player input. 
Step 2: Game logic 
The CPU calculates:
positions
collisions
game state
AI Ideally much of this processing can happen using Fast RAM. 
Step 3: Graphics The CPU configures the Blitter.
Blitter -> update back buffer 
Step 4: Copper The next Copper list contains display-related changes. 
Step 5: Audio Paula continues playing samples through DMA. 
Step 6: Synchronization The program coordinates with display timing. 
Step 7: Buffer switch The completed buffer becomes visible. Then the cycle begins again. 

36. Many Things Happen at Once 

At one moment we might have:
CPU
 -> calculating game logic

Blitter
 -> drawing graphics

Copper
 -> waiting for raster position

Display DMA
 -> reading bitplanes

Sprite DMA
 -> reading sprite data

Paula
 -> reading audio samples

Exec
 -> managing system activity 

Of course, these components share various hardware constraints and not everything is literally independent. But architecturally, substantial work has been distributed across the machine. This is the central idea behind the Amiga's performance. 

37. The Amiga Is More Than Its CPU 

Looking only at the CPU specification:
Motorola 68000
approximately 7 MHz on early systems does not explain the machine's capabilities. The processor is only one component. 

The real machine is closer to:
               CPU
              /   </span>
             /     </span>
        Fast RAM   Chip RAM
                      |
                   Agnus
             +--------+--------+
             |        |        |
          Copper   Blitter    DMA
             |        |        |
             +--------+--------+
                      |
              Custom chipset
                 /        </span>
                /          </span>
             Video        Audio 

The architecture matters as much as the processor. 

38. Operating System and Hardware 

Were Designed to Cooperate This becomes particularly interesting when we return to AmigaOS. 

Exec understands: 
different memory types
multitasking
interrupts
messages
devices

Graphics and Intuition provide abstractions over the graphical environment. AmigaDOS provides abstractions over files and storage. The operating system therefore reflects important aspects of the hardware architecture rather than completely hiding them. 

39. High-Level and Low-Level Worlds Meet 

An Amiga programmer can work at a high level:
OpenWindow()
Read()
Write()
Wait() or much closer to the machine:
Copper
Blitter
DMA
Interrupts
Custom registers 

This creates an unusually broad programming environment. The programmer can choose the appropriate level. 

40. Applications Prefer Abstraction 

A normal productivity application benefits from using:
Exec
DOS
Intuition
Graphics
Devices because these provide: compatibility
multitasking cooperation
resource management
hardware abstraction
The application does not need to know every hardware detail. 

41. Games and Demos Often Prefer Control 

Games and demos may instead require: 
precise display timing
deterministic graphics behavior
maximum DMA control
direct Copper programming
direct Blitter programming

Therefore they historically often interacted much more directly with the hardware. This explains why some older games work perfectly on one Amiga configuration but encounter problems on another. The more hardware assumptions software makes, the harder compatibility becomes. 

42. The Fundamental Trade-Off 

This gives Amiga programming two broad philosophies. Operating-system approach

Program
   |
AmigaOS
   |
Hardware Advantages: 
compatibility
multitasking
easier development
resource coordination
Direct-hardware approach
Program
   |
Hardware Advantages: precise control
predictable timing
ability to exploit chipset features directly

The correct choice depends on the application. 

43. Why Exec Is So Important 

After studying the entire machine, it becomes clear why Exec is central. 

Exec forms the bridge between many software concepts:
               Exec
        +-------+-------+
        |       |       |
      Tasks   Memory  Messages
        |       |       |
      Signals Devices Interrupts 

Higher-level systems are built on these mechanisms. Without Exec, the Amiga would still have impressive hardware. But it would not have the same elegant multitasking operating-system architecture. 

44. Why Chip RAM Is So Important 

Similarly, Chip RAM is not simply "slow RAM." It is the shared communication space used by the CPU and essential custom hardware.

                 Chip RAM
      +-------------+-------------+
      |             |             |
     CPU          Copper       Blitter
      |             |             |
      +-------------+-------------+
                    |
                 DMA users 

Its special value comes from who can access it. That is why running out of Chip RAM can be a problem even when Fast RAM is still available. 

45. Why Fast RAM Is So Important 

Fast RAM complements Chip RAM. It gives the CPU somewhere to work without sharing every memory cycle with the chipset.

CPU
 |
 +--> Fast RAM
 |
 +--> Chip RAM <--- DMA hardware 

This division creates one of the most important performance optimizations available to classic Amiga systems. Accelerator cards take this principle much further by pairing faster CPUs with fast local memory. 

46. Why the Copper 

Is So Special The Copper represents a remarkable design philosophy. Instead of making the CPU perform precisely timed register changes, the Amiga provides a tiny specialized coprocessor.

CPU prepares instructions
         |
         v
       Copper
         |
         v
Wait for raster
         |
         v
Change register 

It performs a small set of functions extremely efficiently. That is a recurring Amiga principle: Use specialized hardware for specialized jobs. 

47. Why the Blitter 

Is So Special The same applies to the Blitter. The 68000 is a general-purpose CPU. The Blitter is specialized for operations involving blocks of memory. 

Instead of:
CPU does thousands of graphical memory operations the system can often use:
CPU configures Blitter
          |
          v
Blitter performs repetitive operation 

The CPU is then free for other work. 

48. Paula Demonstrates the Same Philosophy 

Paula demonstrates this architecture for audio. 

Rather than having the CPU continuously output individual samples:
CPU
 |
 | setup
 v
Paula
 |
 | DMA
 v
Sample data 

Specialized hardware keeps the sound playing. The CPU can concentrate on the application. 

49. AmigaOS Uses the Same Philosophy in Software Interestingly, the operating system mirrors this modularity. Hardware is divided into specialized components. Software is also divided into specialized components.

Hardware:

Agnus
Denise
Paula
Copper
Blitter


Software:

Exec
DOS
Intuition
Graphics
Libraries
Devices
Handlers 

Both levels favor cooperating components rather than one monolithic controller doing everything. 50. The Entire Amiga in One Model 

We can now create a final conceptual overview:

                         USER
                          |
             +------------+------------+
             |                         |
         Workbench                   Shell
             |                         |
             +------------+------------+
                          |
                     Applications
                          |
          +---------------+---------------+
          |               |               |
      Intuition        AmigaDOS        Graphics
          |               |               |
          +---------------+---------------+
                          |
                         Exec
           +--------------+--------------+
           |              |              |
        Memory          Tasks         Messages
           |              |              |
        Devices        Signals       Interrupts
           |
           v
                    HARDWARE
                       |
         +-------------+-------------+
         |                           |
      68000 CPU                 Custom Chips
         |                       /   |   </span>
         |                  Agnus Denise Paula
         |                    |
      Fast RAM              DMA system
                              |
                         +----+----+
                         |         |
                      Copper    Blitter
                         |
                         v
                      Chip RAM 

No single diagram can capture every architectural detail. But this model demonstrates the central principle: The Amiga is a network of cooperating hardware and software components. 

51. From Power Switch to Running Application 

We can now summarize an entire journey through the machine.

POWER ON
   |
   v
Kickstart
   |
   v
Exec
   |
   +--> memory discovered
   |
   +--> multitasking initialized
   |
   v
AmigaDOS
   |
   v
Startup-Sequence
   |
   v
System assigns and components
   |
   v
Workbench
   |
   v
User starts application
   |
   v
DOS process / Exec task
   |
   +--> opens libraries
   |
   +--> allocates memory
   |
   +--> accesses files
   |
   +--> creates GUI
   |
   v
Application performs work
   |
   +--> CPU
   |
   +--> Fast RAM
   |
   +--> Chip RAM
   |
   +--> Blitter
   |
   +--> Copper
   |
   +--> DMA
   |
   +--> Paula
   |
   v
Graphics + Sound + Interaction 

That is the Amiga as a complete system. 

52. What Makes the Amiga Different? 

The Amiga is not unique because of any one individual feature. 

Other systems had: 
graphical interfaces
sound hardware
DMA
multitasking
coprocessors

What made the Amiga remarkable was the way its components were combined. The architecture was built around cooperation and specialization. The CPU did not need to do everything. The operating system did not need to be monolithic. Applications could communicate through messages. Hardware could transfer data through DMA. Specialized processors could operate concurrently with the CPU. Memory itself could have different roles. The entire machine reflected a consistent philosophy. 

53. Understanding the Amiga 

Changes How You See It At the beginning, an Amiga may appear to be:
Keyboard
Mouse
Workbench
Floppy drive
Games 

After exploring its architecture, we see something very different:
68000
   |
Exec
   |
Tasks / Signals / Messages
   |
Libraries / Devices / DOS
   |
Processes / Handlers
   |
Chip RAM / Fast RAM
   |
DMA / Interrupts
   |
Agnus / Denise / Paula
   |
Copper / Blitter
   |
Graphics / Audio 

The familiar user experience is only the visible surface of a much more interesting architecture. Conclusion The classic Amiga is best understood not as a collection of isolated features, but as a cooperative system. The 68000 performs general-purpose processing. Exec provides multitasking, memory management, signals, messages and core operating-system infrastructure. AmigaDOS provides files, processes, volumes, assigns and filesystem services. Intuition provides the graphical user-interface framework. Chip RAM creates a shared memory area between the CPU and the custom chipset. Fast RAM gives the CPU a more independent workspace. Agnus coordinates important memory and DMA activity. Denise plays a central role in generating the display on classic OCS/ECS machines. Paula provides audio and important I/O functions. The Copper performs display-synchronized hardware control. The Blitter performs specialized graphical and memory operations. DMA allows hardware to transfer data without forcing the CPU to perform every individual operation. Interrupts allow the hardware to request CPU attention when necessary. Together they create a system in which work is distributed intelligently between software and specialized hardware. And that is perhaps the most important lesson from this entire series: The Amiga was not designed around a powerful CPU doing everything. It was designed around many specialized components working together efficiently. That design philosophy is the key to understanding why the Amiga could achieve such impressive graphics, sound, multitasking and responsiveness with hardware that, viewed only by CPU specifications, appears remarkably modest. End of the Amiga Course With Article 20, our planned Amiga course is complete. The 20 articles have taken us from the visible Amiga experience down through Workbench and AmigaOS, deeper into Exec, memory and multitasking, and finally into DMA, interrupts and the custom chipset itself. The natural next series is now your planned AROS course. That will be especially interesting because we can directly connect the new articles to what we have learned here and repeatedly compare AROS with classic AmigaOS, rather than explaining everything again from scratch.