Turbo Pascal tipps


Tipps & Tricks
1. Ermitteln des Bootlaufwerks
Ermittelt das Laufwerk, von dem gebootet wurde.
Rückgabe von  1 für Laufwerk A,  2 für Laufwerk B etc.
uses dos;
var regs : registers;
function get_bootdrive : integer;
begin
regs.ax := $3305;
intr ($21, regs);
get_bootdrive := regs.dl;
end;
2. Prüfung auf Installation eines CD-ROM-Treibers
Gibt  TRUE zurück, wenn ein CD-ROM-Treiber installiert ist.
uses dos;
var regs : registers;
function cdrom : boolean;
begin
regs.ax := $1500;
regs.bx := $0;
intr ($2F, regs);
if regs.bx = 0 then cdrom := false else cdrom := true;
end;
3. Ermitteln des BIOS-Datums
Gibt das Datum des BIOS zurück.
var i : integer;
begin
for i := 0 to 7 do write(chr(mem[$F000 : $FFF5 + i]));
end.
4. Leeren des Tastaturpuffers
Löscht den Tastaturpuffer.
begin
inline($FA);
memw[$40 : $1A] := memw[$40 : $1C];
inline($FB);
end;
© Clemens Weiß | www.webplain.de 1
5. Füllen des Tastaturpuffers
Füllt den Tastaturpuffer, um z. B. Abfragen in Programmen (J/N) automatisch zu
beantworten.
procedure write_buffer(s : string);
var anfang : integer absolute 0 : 1050;
ende : integer absolute 0 : 1052;
zaehler : integer;
zeile : string[15] absolute s;
begin
zeichen := zeichen + chr(13);
anfang := 30;
ende := 30 + length(zeile)*2;
for zaehler := 1 to length(zeile) do mem[0 : 1054 +
(zaehler-1)*2] := ord(zeile[zaehler]);
end;
6. NumLock An/Aus
Schaltet die NumLock-Taste an oder aus.
uses dos;
procedure set_numlock(on : boolean);
var regs : registers;
begin
if on
then byte(ptr(seg0040, $17)^) := byte(ptr(seg0040,
$17)^) or $20
else byte(ptr(seg0040, $17)^) := byte(ptr(seg0040,
$17)^) and (not $20);
regs.ah := $01;
intr($16, regs);
end;
begin
set_numlock(true); { Numlock an }
readln;
set_numlock(false); { Numlock aus }
end.
© Clemens Weiß | www.webplain.de 2
7. CapsLock An/Aus
Schaltet die Feststell-Taste an oder aus.
uses dos;
procedure set_capslock(on : boolean);
var regs : registers;
begin
if on
then byte(ptr(seg0040, $17)^) := byte(ptr(seg0040,
$17)^) or $40
else byte(ptr(seg0040, $17)^) := byte(ptr(seg0040,
$17)^) and (not $40);
regs.ah := $01;
intr($16, regs);
end;
begin
set_capslock(true); { CapsLock an }
readln;
set_capslock(false); { CapsLock aus }
end.
8. Prüfung auf Laufwerksbereitschaft
Gibt  TRUE zurück, wenn das Laufwerk mit dem übergebenen Buchstaben bereit ist.
uses dos;
var regs : registers;
function drive_ready(drive : char) : boolean;
begin
regs.ah := $32;
regs.dl := ord(upcase(drive))-64;
msdos(regs);
drive_ready := regs.al <> $FF;
end;
9. Prüfung, ob DOS = HIGH geladen ist
Gibt  TRUE zurück, wenn DOS = HIGH geladen ist.
uses dos;
var regs : registers;
function dos_high : boolean;
begin
regs.ax := $3306;
intr($21, regs);
dos_high := regs.dx = $1000;
end;
© Clemens Weiß | www.webplain.de 3
10. Prüfung, ob ANSI.SYS geladen ist
Gibt  TRUE zurück, wenn ANSI.SYS geladen ist.
uses dos;
var regs : registers;
function ansi_installed : boolean;
begin
regs.ah := $1A;
regs.al := 0;
intr($2F, regs);
ansi_installed := regs.al = $FF;
end;
11. Prüfung, ob DOSKEY geladen ist
Gibt  TRUE zurück, wenn DOSKEY geladen ist.
uses dos;
var regs : registers;
function doskey_installed : boolean;
begin
regs.ah := $48;
regs.al := 0;
intr($2F, regs);
doskey_installed := regs.al <> $00;
end;
12. Prüfung, ob HIMEM.SYS geladen ist
Gibt  TRUE zurück, wenn HIMEM.SYS geladen ist.
uses dos;
var regs : registers;
function himem_installed : boolean;
begin
regs.ah := $43;
regs.al := 0;
intr($2F, regs);
himem_installed := regs.al = $80;
end;
13. Prüfen, ob SHARE.EXE geladen ist
Gibt  TRUE zurück, wenn SHARE.EXE geladen ist.
uses dos;
var regs : registers;
function share_installed : boolean;
begin
regs.ah := $10;
regs.al := $00;
intr($2F, regs);
share_installed := regs.al := $FF;
end;
© Clemens Weiß | www.webplain.de 4
14. Durchsuchen der Festplatte
Durchsucht das angegebene Laufwerk nach bestimmten Dateien.
uses dos;
procedure scan(s : string);
var f : searchrec;
begin
findfirst(s + '*.*', $3F, f);
while (doserror = 0) do
begin
with f do
if (f.name[1] <> '.') and (f.attr <> 40) then
begin { Verzeichnis gefunden }
if attr = $10 then scan(s + f.name + '\')
{ Datei gefunden }
else writeln(s + f.name);
end;
findnext(f);
end;
end;
begin
scan('C:\');
end.
15. Ein-/Ausschalten des blinkenden Cursors
Schaltet den blinkenden DOS-Cursor im Textmodus aus oder ein.
uses dos;
var regs : registers;
procedure cursor_aus;
begin
regs.ax := $0100;
regs.cx := $2607;
intr($10, regs);
end;
procedure cursor_ein;
begin
regs.ax := $0100;
regs.cx := $0607;
intr($10, regs);
end;
© Clemens Weiß | www.webplain.de 5


Wyszukiwarka

Podobne podstrony:
autoreferat z Turbo Pascala
9 TurboPascal Obsługa plików w turbo pascalu
Turbo Pascal Zadania z programowania z przykladowymi rozwiazaniami tpzada
Turbo Pascal cwiczenia praktyczne
Spis poleceń Turbo Pascal
TURBO PASCAL inst
Praktyczny kurs Turbo Pascala Wydanie IV
Turbo Pascal 1,2 i czesc 3 semestru
Turbo Pascal cwiczenia praktyczne Wydanie II
Informatyka Wykład Turbo pascal 7
Kurs Turbo Pascala
Kurs Turbo Pascal 7 0
Grafika w Turbo Pascalu
Turbo Pascal i Borland C

więcej podobnych podstron