Autor: Marcin 'Qrczak' Kowalczyk (qrczak_at_knm.org.pl)
Data: Sun 07 Feb 1999 - 06:35:07 MET
Sat, 6 Feb 1999, Kowal napisał:
> Czyzby? Mi tu bardziej pasuje funckja 01 przerwania MSDOS Zachowuje sie ona
> _dokladnie_ tak samo jak Readkey. Zbieg okolicznosci? ;)
Zgaduję, że we wcześniejszych wersjach Pascala czytanie z klawiatury
(niekoniecznie ReadKey, było chyba coś takiego jak urządzenie Kbd
z którego czytało się Readem - nie wiem, nie miałem tych wersji Pascala,
to było przed 5.5, najstarszym jakiego pamiętam) używało właśnie takiej
funkcji DOSa. Ale teraz używa przerwania 16h i samo rozbija na #0 + kod.
Praktyczna różnica między przerwaniem DOSa a 16h jest taka, że przy DOSie
działają przekierowania z pliku i DOSa jest trochę wolniejsze. Również
16ym można rozróżnić np. + zwykły i szary itd., ale ReadKey gubi te
różnice. Jest też inna funkcja 16ego (10h zamiast 0), która odczytuje
też takie klawisze jak F12 albo Ctrl-góra; ReadKey i pewnie DOS nie
odczytują (F12 pomijają, a Ctrl-góra zamieniają na górę, mimo że Ctrl-lewo
ma własny kod). Mam nadzieję, że nic nie pokręciłem, bo piszę z pamięci.
BTW: Jeśli ktoś używa modułu Crt i chce wypisać coś na ekran tak żeby
działało przekierowanie do pliku, to niech zrobi:
var Stdout : Text;
begin
Assign (Stdout, ''); Rewrite (Stdout);
{ A może lepiej Append? }
Moduł Crt w swojej inicjalizacji robi
AssignCrt (Input); Reset (Input);
AssignCrt (Output); Rewrite (Output);
podkładając własne funkcje czytania z klawiatury (przez Read! własną
funkcję edycji linii) oraz pisania na ekran.
-- __("< Marcin Kowalczyk * qrczak_at_knm.org.pl http://kki.net.pl/qrczak/ \__/ GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E->++ ^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:11:07 MET DST