home *** CD-ROM | disk | FTP | other *** search
Modula Definition | 1993-10-23 | 5.5 KB | 139 lines |
- DEFINITION MODULE DosSystem;
-
- (*****************************************************************************)
- (* 07-Dez-92, Holger Kleinschmidt *)
- (*****************************************************************************)
-
- FROM SYSTEM IMPORT
- (* TYPE *) ADDRESS;
-
- FROM types IMPORT
- (* TYPE *) SIGNEDWORD, UNSIGNEDWORD, UNSIGNEDLONG, WORDSET;
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- TYPE
- CmdLine = ARRAY [0..127] OF CHAR;
-
- BasePtr = POINTER TO BasePage;
- BasePPtr = POINTER TO BasePtr;
- BasePage = RECORD
- pLowtpa : ADDRESS;
- pHitpa : ADDRESS;
- pTbase : ADDRESS;
- pTlen : UNSIGNEDLONG;
- pDbase : ADDRESS;
- pDlen : UNSIGNEDLONG;
- pBbase : ADDRESS;
- pBlen : UNSIGNEDLONG;
- pDta : ADDRESS;
- pParent : BasePtr;
- res1 : UNSIGNEDLONG;
- pEnv : ADDRESS;
- res2 : ARRAY [0..19] OF UNSIGNEDLONG;
- pCmdlin : CmdLine;
- END;
-
-
- TYPE
- OsPtr = POINTER TO OsHeader;
- OsHeader = RECORD
- osEntry : UNSIGNEDWORD;
- osVersion : UNSIGNEDWORD;
- reseth : ADDRESS;
- osBeg : OsPtr;
- osEnd : ADDRESS;
- osRsv1 : UNSIGNEDLONG;
- osMagic : ADDRESS;
- osDate : UNSIGNEDLONG;
- osConf : WORDSET;
- osDosdate : WORDSET;
- (* die folgenden Variablen ab TOS 1.02 *)
- pRoot : ADDRESS;
- pkbshift : ADDRESS;
- pRun : BasePPtr;
- pRsv2 : ADDRESS;
- END;
-
- TYPE
- Shell = (None, Mupfel, Gemini, Gulam, Master, Unknown);
-
-
- VAR
- PID : INTEGER; (* process id *)
- PPID : INTEGER; (* parent process id *)
-
- (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
-
- PROCEDURE GetBasePage ((* -- /AUS *) VAR basep : ADDRESS );
-
- (*--------------------------------------------------------------------------
- | Liefert einen Zeiger auf die BasePage des eigenen Programms. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE GetOsHeader ((* -- /AUS *) VAR osp : ADDRESS );
-
- (*--------------------------------------------------------------------------
- | Liefert einen Zeiger auf die OSHEADER-Systemstruktur |
- --------------------------------------------------------------------------*)
-
- PROCEDURE DosVersion ( ): CARDINAL;
-
- (*--------------------------------------------------------------------------
- | Liefert die kodierte DOS-Version |
- --------------------------------------------------------------------------*)
-
- PROCEDURE SysClock ( ): UNSIGNEDLONG;
-
- (*--------------------------------------------------------------------------
- | Liefert zurueck, wie oft die Systemvariable '_hz_200' seit Programmstart |
- | erhoeht wurde. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE ShellInstalled ( ): Shell;
-
- (*--------------------------------------------------------------------------
- | Versucht festzustellen, ob ueber die Systemvariable '_shell_p' eine |
- | Kommandoshell installiert ist. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE CallShell ((* EIN/ -- *) VAR cmd : ARRAY OF CHAR ): INTEGER;
-
- (*--------------------------------------------------------------------------
- | Versucht ein Shell-Kommando ueber die Systemvariable '_shell_p' abzu- |
- | setzen. Vorher wird mit "ShellInstalled()" ueberprueft, ob eine Shell |
- | installiert ist; wenn allerdings nach einem Reset oder nach Beendigung |
- | einer Shell (-> Gulam) diese Variable nicht wieder auf Null gesetzt wird,|
- | gibts mit ziemlicher Sicherheit einen Systemabsturz! |
- | Als Funktionswert wird -1 zurueckgeliefert, falls keine Shell installiert|
- | ist, ansonsten der Rueckgabewert der Shell. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE MiNTVersion ( ): CARDINAL;
-
- (*--------------------------------------------------------------------------
- | Liefert die kodierte MiNT-Version (= 0, falls MiNT nicht aktiv). |
- --------------------------------------------------------------------------*)
-
- PROCEDURE FileLocking ( ): BOOLEAN;
-
- (*--------------------------------------------------------------------------
- | Testet, ob das Betriebssystem ``File locking'' unterstuetzt. |
- --------------------------------------------------------------------------*)
-
- PROCEDURE ProcessDomain ((* EIN/ -- *) dom : INTEGER ): INTEGER;
-
- (*--------------------------------------------------------------------------
- | Beeinflusst das Verhalten bestimmter Systemaufrufe. |
- | <dom> < 0: Keine Aenderung |
- | <dom> = 0: TOS-Domain |
- | <dom> = 1: MiNT-Domain |
- | |
- | Der alte ``Domain''-Wert wird zurueckgeliefert. Die Funktion hat nur |
- | unter MiNT eine Auswirkung. |
- | Ist MiNT bei Programmstart aktiv, wird automatisch MiNT-Domain voreinge- |
- | stellt. |
- --------------------------------------------------------------------------*)
-
- END DosSystem.
-