Ausgabe 6 — Änderungen 1919 → 2156

Zeile 193: Zeile 193:
 
=== System Calls ===
 
=== System Calls ===
 
Mit System Calls ruft man in MenuetOS APIs auf, das heißt, Funktionen wie `WAIT FOR EVENT` oder `SYSTEM TREE ACCESS`. In DOS ruft man Funktionen meistens mit INT 0x21 auf, und in Windows direkt mit CALL. In Menuet funktioniert das folgendermaßen:
 
Mit System Calls ruft man in MenuetOS APIs auf, das heißt, Funktionen wie `WAIT FOR EVENT` oder `SYSTEM TREE ACCESS`. In DOS ruft man Funktionen meistens mit INT 0x21 auf, und in Windows direkt mit CALL. In Menuet funktioniert das folgendermaßen:
 +
<asm>
 
     mov eax, FUNKTIONSNUMMER
 
     mov eax, FUNKTIONSNUMMER
 
     ebx, ecx, edx, esi, edi, ebp = Parameters
 
     ebx, ecx, edx, esi, edi, ebp = Parameters
 
     INT 0x40 - SYSTEM CALL
 
     INT 0x40 - SYSTEM CALL
 +
</asm>
  
 
Die Funktionen, die bis jetzt 68 an der Zahl sind, findet man in der Datei SYSFUNCS.TXT.
 
Die Funktionen, die bis jetzt 68 an der Zahl sind, findet man in der Datei SYSFUNCS.TXT.
Zeile 205: Zeile 207:
  
 
Wenn wir jetzt in unserem Programm eine 0.5 Sekunden lange Wartezeit wollen, müssen wir es folgendermaßen benützen:
 
Wenn wir jetzt in unserem Programm eine 0.5 Sekunden lange Wartezeit wollen, müssen wir es folgendermaßen benützen:
 +
<asm>
 
     mov  eax, 5           ; Function number: DELAY X/100 SECS
 
     mov  eax, 5           ; Function number: DELAY X/100 SECS
 
     mov  ebx, 50          ; 50/100 sek = 0.5 Sekunden
 
     mov  ebx, 50          ; 50/100 sek = 0.5 Sekunden
 
     int  0x40            ; System call
 
     int  0x40            ; System call
 +
</asm>
  
 
Wir setzen die Funktionsnummer (die hier 5 ist) in eax, setzten ebx die gewünschten ?*0.01 Sekunden und rufen die Funktion auf - ganz einfach.
 
Wir setzen die Funktionsnummer (die hier 5 ist) in eax, setzten ebx die gewünschten ?*0.01 Sekunden und rufen die Funktion auf - ganz einfach.