home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / program / m2posx02 / dossyste.dpp < prev    next >
Text File  |  1993-10-23  |  6KB  |  139 lines

  1. DEFINITION MODULE DosSystem;
  2.  
  3. (*****************************************************************************)
  4. (* 07-Dez-92, Holger Kleinschmidt                                            *)
  5. (*****************************************************************************)
  6.  
  7. FROM SYSTEM IMPORT
  8. (* TYPE *) ADDRESS;
  9.  
  10. FROM types IMPORT
  11. (* TYPE *) SIGNEDWORD, UNSIGNEDWORD, UNSIGNEDLONG, WORDSET;
  12.  
  13. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  14.  
  15. TYPE
  16.   CmdLine = ARRAY [0..127] OF CHAR;
  17.  
  18.   BasePtr  = POINTER TO BasePage;
  19.   BasePPtr = POINTER TO BasePtr;
  20.   BasePage = RECORD
  21.     pLowtpa : ADDRESS;
  22.     pHitpa  : ADDRESS;
  23.     pTbase  : ADDRESS;
  24.     pTlen   : UNSIGNEDLONG;
  25.     pDbase  : ADDRESS;
  26.     pDlen   : UNSIGNEDLONG;
  27.     pBbase  : ADDRESS;
  28.     pBlen   : UNSIGNEDLONG;
  29.     pDta    : ADDRESS;
  30.     pParent : BasePtr;
  31.     res1    : UNSIGNEDLONG;
  32.     pEnv    : ADDRESS;
  33.     res2    : ARRAY [0..19] OF UNSIGNEDLONG;
  34.     pCmdlin : CmdLine;
  35.   END;
  36.  
  37.  
  38. TYPE
  39.   OsPtr = POINTER TO OsHeader;
  40.   OsHeader = RECORD
  41.     osEntry   : UNSIGNEDWORD;
  42.     osVersion : UNSIGNEDWORD;
  43.     reseth    : ADDRESS;
  44.     osBeg     : OsPtr;
  45.     osEnd     : ADDRESS;
  46.     osRsv1    : UNSIGNEDLONG;
  47.     osMagic   : ADDRESS;
  48.     osDate    : UNSIGNEDLONG;
  49.     osConf    : WORDSET;
  50.     osDosdate : WORDSET;
  51.  (* die folgenden Variablen ab TOS 1.02 *)
  52.     pRoot     : ADDRESS;
  53.     pkbshift  : ADDRESS;
  54.     pRun      : BasePPtr;
  55.     pRsv2     : ADDRESS;
  56.   END;
  57.  
  58. TYPE
  59.   Shell = (None, Mupfel, Gemini, Gulam, Master, Unknown);
  60.  
  61.  
  62. VAR
  63.   PID  : INTEGER;      (* process id *)
  64.   PPID : INTEGER;      (* parent process id *)
  65.  
  66. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  67.  
  68.  PROCEDURE GetBasePage ((* -- /AUS *) VAR basep : ADDRESS );
  69.  
  70. (*--------------------------------------------------------------------------
  71.  | Liefert einen Zeiger auf die BasePage des eigenen Programms.             |
  72.   --------------------------------------------------------------------------*)
  73.  
  74.  PROCEDURE GetOsHeader ((* -- /AUS *) VAR osp : ADDRESS );
  75.  
  76. (*--------------------------------------------------------------------------
  77.  | Liefert einen Zeiger auf die OSHEADER-Systemstruktur                     |
  78.   --------------------------------------------------------------------------*)
  79.  
  80.  PROCEDURE DosVersion ( ): CARDINAL;
  81.  
  82. (*--------------------------------------------------------------------------
  83.  | Liefert die kodierte DOS-Version                                         |
  84.   --------------------------------------------------------------------------*)
  85.  
  86.  PROCEDURE SysClock ( ): UNSIGNEDLONG;
  87.  
  88. (*--------------------------------------------------------------------------
  89.  | Liefert zurueck, wie oft die Systemvariable '_hz_200' seit Programmstart |
  90.  | erhoeht wurde.                                                           |
  91.   --------------------------------------------------------------------------*)
  92.  
  93.  PROCEDURE ShellInstalled ( ): Shell;
  94.  
  95. (*--------------------------------------------------------------------------
  96.  | Versucht festzustellen, ob ueber die Systemvariable '_shell_p' eine      |
  97.  | Kommandoshell installiert ist.                                           |
  98.   --------------------------------------------------------------------------*)
  99.  
  100.  PROCEDURE CallShell ((* EIN/ -- *) VAR cmd : ARRAY OF CHAR ): INTEGER;
  101.  
  102. (*--------------------------------------------------------------------------
  103.  | Versucht ein Shell-Kommando ueber die Systemvariable '_shell_p' abzu-    |
  104.  | setzen. Vorher wird mit "ShellInstalled()" ueberprueft, ob eine Shell    |
  105.  | installiert ist; wenn allerdings nach einem Reset oder nach Beendigung   |
  106.  | einer Shell (-> Gulam) diese Variable nicht wieder auf Null gesetzt wird,|
  107.  | gibts mit ziemlicher Sicherheit einen Systemabsturz!                     |
  108.  | Als Funktionswert wird -1 zurueckgeliefert, falls keine Shell installiert|
  109.  | ist, ansonsten der Rueckgabewert der Shell.                              |
  110.   --------------------------------------------------------------------------*)
  111.  
  112.  PROCEDURE MiNTVersion ( ): CARDINAL;
  113.  
  114. (*--------------------------------------------------------------------------
  115.  | Liefert die kodierte MiNT-Version (= 0, falls MiNT nicht aktiv).         |
  116.   --------------------------------------------------------------------------*)
  117.  
  118.  PROCEDURE FileLocking ( ): BOOLEAN;
  119.  
  120. (*--------------------------------------------------------------------------
  121.  | Testet, ob das Betriebssystem ``File locking'' unterstuetzt.             |
  122.   --------------------------------------------------------------------------*)
  123.  
  124.  PROCEDURE ProcessDomain ((* EIN/ -- *) dom : INTEGER ): INTEGER;
  125.  
  126. (*--------------------------------------------------------------------------
  127.  | Beeinflusst das Verhalten bestimmter Systemaufrufe.                      |
  128.  | <dom> < 0: Keine Aenderung                                               |
  129.  | <dom> = 0: TOS-Domain                                                    |
  130.  | <dom> = 1: MiNT-Domain                                                   |
  131.  |                                                                          |
  132.  | Der alte ``Domain''-Wert wird zurueckgeliefert. Die Funktion hat nur     |
  133.  | unter MiNT eine Auswirkung.                                              |
  134.  | Ist MiNT bei Programmstart aktiv, wird automatisch MiNT-Domain voreinge- |
  135.  | stellt.                                                                  |
  136.   --------------------------------------------------------------------------*)
  137.  
  138. END DosSystem.
  139.