Systems programming in C for AmigaOS.
EduAmigaC builds on EduC and teaches how to write real AmigaOS software in C while understanding the operating-system model underneath.
The course aims to produce capable Amiga programmers, not just learners who can compile a few examples.
Learners should first be comfortable with the core material in EduC, especially pointers, structs, memory, function pointers, multi-file programs, libraries, debugging, and reading simple generated assembly.
By the end of the course, the learner should be able to:
- understand the AmigaOS execution model
- use Exec concepts such as tasks, signals, message ports and libraries
- use DOS processes, files and CLI-related facilities
- perform asynchronous I/O through devices and I/O requests
- work with AmigaOS memory allocation and ownership conventions
- open and use system libraries safely
- build command-line and GUI applications
- understand Intuition fundamentals
- expose and consume ARexx ports where appropriate
- build reusable Amiga libraries and structured multi-module programs
- debug common crashes, invalid pointers and resource leaks
- write software that respects older AmigaOS and 68000-class constraints where the project requires it
- C on the Amiga
- The Amiga toolchain
- Amiga executable basics
- Exec fundamentals
- Tasks and scheduling
- Signals
- Message ports and messages
- Memory allocation and ownership
- Libraries and library bases
- Devices and I/O requests
- DOS processes and CLI programs
- Files, locks and directories
- Console and terminal-style programs
- Timers and asynchronous programming
- Intuition fundamentals
- Windows, gadgets and events
- ARexx integration
- Building reusable libraries
- Error handling and cleanup
- Debugging on real and emulated systems
- Performance and 68k awareness
- Defensive and secure Amiga C
- Compatibility across AmigaOS versions
- Capstone projects
Examples should run in the Ploos Amiga development/runtime environment where possible and should be suitable for automated qualification in emulators without requiring proprietary ROMs or AmigaOS files in the repository.
EduAmigaC and EduPOSIX are sister courses. Comparable exercises will be used where useful—for example process/task creation, IPC, asynchronous I/O and event-driven programming—so learners see how different operating systems solve similar problems.
The course is intended for English and Norwegian editions and should ultimately be publishable as web/book material and AmigaGuide where practical.
M0 — Project foundation
The curriculum and repository structure are being established.
Course material and documentation will use an appropriate Creative Commons license. Original source code examples are intended to use the MIT license unless otherwise stated.