home *** CD-ROM | disk | FTP | other *** search
- #pragma +
- // nostartup.c - Demo für Linken ohne Startup-Code
- //
- // Jens Gelhar 08.06.92
- //
- // Compileraufruf: cppc nostartup.c -gs
- // bzw. "Ohne Startup" im M+Plus-Linker-Requester einstellen
-
- #include <linkerfunc.h>
- #include <stream.h>
-
- // Die erste Funktion im ersten Hunk wird angesprungen:
-
- void f(register __d0 int len, register __a0 char *par)
- // In Registern d0 und a0 werden die Shell-Parameter übergeben
- // Diese Register-Belegungen bremsen die Funktion übrigens gut aus,
- // deshalb sollte man in dieser Funktion nicht mehr als nötig tun.
- {
- // Wichtig, wenn Small Data-Hunks existieren, und sonst auch
- // nicht verkehrt:
- GetBaseReg();
-
- // Initialisierungen, z. B. Dos-Lib öffnen:
- InitModules();
-
- par[len-1]=0; // Normalerweise kein Nullbyte am Ende
-
- // Jetzt geht alles wie immer:
- cout << "Es geht auch ohne Startup-Code!"
- << "\nParameter-Länge: " << len
- << "\nParameter: " << par
- << "\n";
-
- // Programmende: Aufräumen, z. B. DosLibrary schließen:
- CleanupModules();
-
- // "exit()" darf ohne Startup-Code nicht benutzt werden!!!
- // Es ist nur so ein sinnvoller Return-Code möglich:
- len = 42;
- }
-
-