home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC7.DMS / in.adf / cppdemo.lha / C++ / nostartup.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-30  |  1.1 KB  |  42 lines

  1. #pragma +
  2. // nostartup.c - Demo für Linken ohne Startup-Code
  3. //
  4. // Jens Gelhar 08.06.92
  5. //
  6. // Compileraufruf: cppc nostartup.c -gs
  7. // bzw. "Ohne Startup" im M+Plus-Linker-Requester einstellen
  8.  
  9. #include <linkerfunc.h>
  10. #include <stream.h>
  11.  
  12. // Die erste Funktion im ersten Hunk wird angesprungen:
  13.  
  14. void f(register __d0 int len, register __a0 char *par)
  15.  // In Registern d0 und a0 werden die Shell-Parameter übergeben
  16.  // Diese Register-Belegungen bremsen die Funktion übrigens gut aus,
  17.  // deshalb sollte man in dieser Funktion nicht mehr als nötig tun.
  18. {
  19.   // Wichtig, wenn Small Data-Hunks existieren, und sonst auch
  20.   // nicht verkehrt:
  21.   GetBaseReg();
  22.  
  23.   // Initialisierungen, z. B. Dos-Lib öffnen:
  24.   InitModules();
  25.  
  26.   par[len-1]=0;     // Normalerweise kein Nullbyte am Ende
  27.  
  28.   // Jetzt geht alles wie immer:
  29.   cout << "Es geht auch ohne Startup-Code!"
  30.        << "\nParameter-Länge: " << len
  31.        << "\nParameter: " << par
  32.        << "\n";
  33.  
  34.   // Programmende: Aufräumen, z. B. DosLibrary schließen:
  35.   CleanupModules();
  36.  
  37.   // "exit()" darf ohne Startup-Code nicht benutzt werden!!!
  38.   // Es ist nur so ein sinnvoller Return-Code möglich:
  39.   len = 42;
  40. }
  41.  
  42.