mirror of
https://github.com/alfishe/amiga-bootcamp.git
synced 2026-06-12 16:16:28 +00:00
106 lines
3.9 KiB
Markdown
106 lines
3.9 KiB
Markdown
[← Home](../README.md) · [Toolchain](README.md)
|
||
|
||
# StormC — Native IDE and Compiler Suite
|
||
|
||
## Overview
|
||
|
||
**StormC** was a native Amiga integrated development environment (IDE) developed by **Haage & Partner**. Unlike SAS/C (command-line focused) or GCC (cross-compilation), StormC provided a modern GUI-based IDE running directly on the Amiga with project management, integrated editor, debugger, and compiler — similar to what Borland C++ and Visual Studio offered on PC.
|
||
|
||
---
|
||
|
||
## Version History
|
||
|
||
| Version | Year | Key Features |
|
||
|---|---|---|
|
||
| StormC 1.0 | 1996 | Initial release, C compiler, basic IDE |
|
||
| StormC 2.0 | 1997 | C++ support, improved optimizer |
|
||
| StormC 3.0 | 1998 | Full C++ with exceptions, STL, PowerPC support |
|
||
| StormC 4.0 | 1999 | Final version, OS 3.5 integration |
|
||
|
||
---
|
||
|
||
## Key Features
|
||
|
||
| Feature | Description |
|
||
|---|---|
|
||
| **Native IDE** | GUI editor + project manager running on AmigaOS itself |
|
||
| **C and C++** | Full C89/C90, C++ with exceptions and RTTI |
|
||
| **PowerPC** | StormC 3+ could target PPC (for CyberStorm PPC, BlizzardPPC) |
|
||
| **68k code gen** | 68000 through 68060 target support |
|
||
| **Debugger** | Integrated source-level debugger with breakpoints and watch |
|
||
| **Linker** | StormLink — Amiga hunk format output |
|
||
| **Profiler** | Built-in function-level profiler |
|
||
| **AmigaOS integration** | Full NDK headers, pragma support, Amiga library call stubs |
|
||
| **MUI support** | Built-in MUI class creation wizards (later versions) |
|
||
|
||
---
|
||
|
||
## Project Structure
|
||
|
||
StormC used `.storm` project files (proprietary format) containing:
|
||
- Source file list and compilation order
|
||
- Compiler flags per file or project-wide
|
||
- Include paths and library search paths
|
||
- Debug/Release build configurations
|
||
- Target CPU selection
|
||
|
||
---
|
||
|
||
## Compilation
|
||
|
||
```
|
||
; From the IDE:
|
||
; Project → Build (or press Ctrl+B)
|
||
|
||
; Command-line compiler also available:
|
||
stormc -O2 -m68020 -o myapp main.c util.c
|
||
|
||
; Typical flags:
|
||
; -m68000 Target 68000
|
||
; -m68020 Target 68020+
|
||
; -m68040 Target 68040
|
||
; -m68060 Target 68060
|
||
; -O0 to -O3 Optimization level
|
||
; -g Debug info
|
||
; -c Compile only (no link)
|
||
; -I<path> Include path
|
||
; -L<path> Library path
|
||
; -l<lib> Link library
|
||
```
|
||
|
||
---
|
||
|
||
## StormC vs. Other Amiga Compilers
|
||
|
||
| Feature | SAS/C 6.58 | GCC (bebbo) | StormC 4.0 |
|
||
|---|---|---|---|
|
||
| **C++ support** | No (C only) | Yes (GCC 6.5) | Yes (with exceptions) |
|
||
| **IDE** | No (CLI + editor) | No (CLI + any editor) | **Yes (native GUI)** |
|
||
| **Debugger** | External (CodeProbe) | GDB remote | **Integrated** |
|
||
| **Cross-compile** | No (native only) | **Yes (Linux/macOS host)** | No (native only) |
|
||
| **Optimizer quality** | Excellent | Good | Good |
|
||
| **PowerPC** | No | No | Yes (v3+) |
|
||
| **Availability** | Abandonware | Free / open source | Abandonware |
|
||
| **Legacy code compat** | High (dominant compiler) | Moderate (GCC differences) | Moderate |
|
||
| **Pragma support** | Native `#pragma libcall` | Inline asm stubs | Pragma compatible |
|
||
|
||
---
|
||
|
||
## Limitations and Legacy
|
||
|
||
- **Proprietary project format**: `.storm` files can't be converted to Makefiles easily
|
||
- **No cross-compilation**: Must run on a real Amiga or emulator
|
||
- **C++ ABI**: StormC's C++ name mangling and vtable layout differ from GCC — libraries compiled with StormC can't be linked with GCC C++ code
|
||
- **Abandoned**: Haage & Partner ceased operations; no source release
|
||
- **PowerPC path abandoned**: The WarpOS/PowerUP split made PPC support fragmented
|
||
|
||
Despite these issues, StormC was the most productive **native** Amiga development environment, and many late-era Amiga applications (1996–2000) were developed with it.
|
||
|
||
---
|
||
|
||
## References
|
||
|
||
- Haage & Partner: historical website (archived)
|
||
- Aminet: `dev/c/StormC` — various StormC patches and updates
|
||
- See also: [sasc.md](sasc.md) — SAS/C (dominant legacy compiler)
|
||
- See also: [gcc_amiga.md](gcc_amiga.md) — GCC cross-compiler (modern standard)
|