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 >
Wrap
Text File
|
1993-10-23
|
6KB
|
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.