K onsylium  


 

Jak program Norton Commander sprawdza ilo╢µ wolnej pamiΩci?


1. Moje pytanie zwi▒zane jest z ilo╢ci▒ wolnej pamiΩci widzianej przez Norton Commander. Warto╢µ ta przy za│adowaniu systemu z dyskietki wynosi 655 360, natomiast je┐eli system wystartuje z dysku twardego, to mam w≤wczas 649 216 bajt≤w. Czy jest mo┐liwe, aby by│o to skutkiem dzia│ania rezydentnego wirusa, kt≤rego nie widzi MkSVir? Zdarzy│o siΩ bowiem kilka razy, ┐e przy takich objawach dyski twarde "pozby│y siΩ" swojej zawarto╢ci (warto╢µ 649 216 ukazuje siΩ dopiero od pewnego czasu). Po sprawdzeniu zbior≤w programem MSAV zosta│o wykryte kilka plik≤w, w kt≤rych by│a zamieniona data; tzn. dzie± by│ zamieniony z miesi▒cem. Po uaktualnieniu daty warto╢µ pokazywana przez NC wzros│a do 655 344.

2. Dlaczego instrukcja DELAY w jΩzyku Turbo Pascal na moim komputerze jest wykonywana trzy razy szybciej, ni┐ na innych?
Mariusz Kraska, S│awk≤w

1. Zacznijmy od Norton Commandera - liczba wolnej pamiΩci wy╢wietlana w okienku jest warto╢ci▒ dostΩpn▒ dla program≤w po usuniΩciu czΩ╢ci Nortona na dysk. Proces uruchamiania nak│adki przebiega bowiem w dw≤ch fazach: najpierw do pamiΩci │adowana jest ma│a czΩ╢µ rezydentna (ok. 13 kB; wielko╢µ zale┐y od wersji NC), a nastΩpnie du┐y w│a╢ciwy plik programu. Gdy Norton wy╢wietla warto╢µ wolnej pamiΩci, "oszukuje", gdy┐ de facto wolnej pamiΩci jest w Pana przypadku oko│o 300 kB; resztΩ zajmuje sam Commander. Oczywi╢cie w momencie uruchomienia prawie jakiegokolwiek programu zewnΩtrznego ten drugi du┐y "kawa│ek" Nortona jest usuwany z pamiΩci i w≤wczas rzeczywi╢cie wolnej pamiΩci jest tyle, ile pokazywa│ wcze╢niej. Napisa│em "prawie jakiegokolwiek", gdy┐ wersjΩ 5.0 NC cechuje brzydki zwyczaj: w momencie │adowania dowolnej przegl▒darki (uruchamianej klawiszem F3), g│≤wna czΩ╢µ Nortona zostaje w pamiΩci! Powoduje to niezwykle ostre wymagania pamiΩciowe dla przegl▒darki (np. w│asnej, kt≤ra obs│uguje pliki skompresowane nietypowym programem pakuj▒cym); kt≤ra po za│adowaniu do pamiΩci samej siebie ma do dyspozycji np. zaledwie kilkadziesi▒t kB... Po tej dygresji od razu mo┐e przyj╢µ na my╢l proste wyja╢nienie: po pierwsze system z dyskietki m≤g│ byµ │adowany w innej konfiguracji ni┐ opcja z dysku twardego (a wiΩc inne jest zapotrzebowanie na pamiΩµ), a po drugie - je╢li ma Pan NC na systemowej dyskietce, to byµ mo┐e w innej wersji? Mo┐e nawet sam system w obu przypadkach r≤┐ni siΩ wersj▒? Za│≤┐my jednak, ┐e konfiguracje s▒ identyczne, a wiΩc pamiΩµ pokazywana przez NC (tak┐e i przez inne programy, np. przez MEM, zawarty w systemie DOS) powinna byµ identyczna. W takim przypadku rzeczywi╢cie przyczyn▒ mo┐e byµ wirus, zw│aszcza gdy we╝miemy pod uwagΩ ow▒ zamianΩ dnia z miesi▒cem - aby nie zara┐aµ tych samych plik≤w w niesko±czono╢µ, czΩ╢µ wirus≤w rozpoznaje ju┐ zainfekowane pliki poprzez jak▒╢ sztuczkΩ: a to miesi▒c zmieni▒ na 13-ty, a to rok na jaki╢ nietypowy. Taka zamiana mia│aby sens oczywi╢cie w przypadku plik≤w wykonywalnych, czyli typu *.EXE i *.COM. Kwestia niewykrywania wirusa przez MkSVir-a o niczym nie ╢wiadczy. Istnieje wiele wirus≤w, kt≤re bΩd▒c aktywne, po prostu oszukuj▒ program antywirusowy, podsuwaj▒c mu w│a╢ciwe rozmiary zara┐onych plik≤w. Rozwi▒zaniem jest za│adowanie systemu ze zdrowej dyskietki (zabezpieczonej przed zapisem!) i uruchomienie sprawdzonej pod k▒tem bezpiecze±stwa kopii programu antywirusowego. Zreszt▒ nawet i bez niego widaµ bΩdzie w≤wczas r≤┐nicΩ w rozmiarach plik≤w przed i po infekcji. W Pana przypadku winΩ niekoniecznie musi ponosiµ wirus; w og≤le nie nale┐y raczej wpadaµ w panikΩ, a zrobiµ to, co radzΩ powy┐ej: zdrowa, zabezpieczona przed zapisem dyskietka z systemem i... kilka program≤w antywirusowych. Dla pewno╢ci mo┐na te┐ sprawdziµ nie tylko dysk twardy, ale tak┐e dyskietki - wirus mo┐e byµ tylko tam.

2. Nie wiem, jak siΩ sprawy maj▒ w nowszych wersjach kompilator≤w firmy Borland; w starszych jednak takie rzeczy mog│y siΩ zdarzyµ. Instrukcja DELAY bowiem odmierza czas jedynie w przybli┐onym stopniu, za pomoc▒ w│asnej, wewnΩtrznej, pustej pΩtli. Poniewa┐ naturalnie jedne komputery s▒ szybsze, a drugie wolniejsze, za pierwszym wywo│aniem procedury DELAY przeprowadzany jest test, maj▒cy dokonaµ oszacowania odpowiednich wsp≤│czynnik≤w. úatwo siΩ o tym przekonaµ, definuj▒c np. procedurΩ:

PROCEDURE Beep(wysokosc, dlugosc: Integer);
Begin
    Sound(wysokosc);
    Delay(dlugosc);
    NoSound;
End

i wywo│uj▒c j▒ dwa razy, z tymi samymi parametrami. R≤┐nica powinna byµ s│yszalna go│ym uchem, pod warunkiem posiadania niezbyt szybkiego komputera. Jakie jest rozwi▒zanie? Na szczΩ╢cie proste. Mo┐emy wykorzystaµ wewnΩtrzny uk│ad zegara komputera i nie potrzeba nawet u┐ywaµ przerwa±! Wiadomo bowiem, ┐e zegar PC "tyka" 18,2 raza na sekundΩ - z tak▒ te┐ czΩstotliwo╢ci▒ uaktualniana jest d│ugie s│owo (cztery bajty) pod adresem 0:46c (szesnastkowo). Odpowiednikiem DELAY bΩdzie zatem procedura:

PROCEDURE czekaj(czas: Word);
Var
   t0: Word;
   t1: ^Word;
Begin
   t1 := Ptr( $0, $46c );
   t0 := t1^;
   Repeat Until t0+czas <= t1^;
End;

Powy┐sza procedura bΩdzie dok│adnie odmierzaµ przerwy w ramach jednej godziny (zakres liczby typu Word plus badanie tylko mniej znacz▒cych dw≤ch bajt≤w zmiennej). Zmienna "czas" naturalnie podawana bΩdzie w "tykniΩciach", st▒d wywo│anie
czekaj(18);

bΩdzie r≤wnowa┐ne wywo│aniu Delay(1000);

Du┐o lepsze efekty daje przeprogramowanie samego uk│adu zegara tak, aby "tyka│" on z inn▒ czΩstotliwo╢ci▒ (nie myliµ z czΩstotliwo╢ci▒ procesora) - jest to niestety ju┐ du┐o trudniejsze.

Grzegorz Kozielski

 

Po pomy╢lnym zainstalowaniu Windows 95 pojawia siΩ komunikat o b│Ωdzie rejestru, a komputer daje siΩ uruchomiµ tylko w systemie DOS.


Droga Redakcjo!
Jestem posiadaczem komputera Pentium 133, 16 MB RAM (2 ╫ 8 MB), dysk twardy 2,1 GB, karta grafiki S3 Virge 4MB. Niestety szczΩ╢cie moje z tym zwi▒zane trwa│o tylko do chwili, gdy spr≤bowa│em zainstalowaµ Windows 95. Ca│a instalacja przebiega│a poprawnie do momentu gdy trzeba by│o zrestartowaµ komputer. Od tej pory Windows 95 uruchamia mi siΩ z komunikatem o b│Ωdzie rejestru. Okno z tym komunikatem pozwala na odbudowanie rejestru lub na restart komputera. Niestety moje pr≤by odbudowania rejestru owocowa│y zawsze restartem. Komputer zosta│ z│o┐ony przez mojego znajomego z czΩ╢ci kupionych przeze mnie na gie│dzie. Dodam, ┐e programy DOS-owe dzia│aj▒ bez zarzutu. Czemu wiΩc Windows 95 nie chce dzia│aµ, czy┐by jaka╢ czΩ╢µ by│a wadliwa, a mo┐e pope│ni│em jaki╢ b│▒d podczas instalacji?
Przemys│aw Skawecki, O┐ar≤w Maz.

Z regu│y listy tego typu nie doczekuj▒ siΩ odpowiedzi. Przyczyna jest prosta. Nie spos≤b okre╢liµ co jest wadliwe w danym komputerze na podstawie tej garstki informacji jakie otrzymujemy w listach. W tym wypadku zrobiΩ jednak wyj▒tek, gdy┐ problem przedstawiany przez Pana jest bardzo zbli┐ony do k│opot≤w z jakimi zetkn▒│em siΩ podczas pracy z komputerami. Z informacji zawatych w li╢cie wynika, ┐e jedynie DOS wbudowany w Windows 95 dzia│a poprawnie. Otoczka graficzna systemu podaje tylko opisany przez Pana komunikat. Jedyna rada jak▒ mogΩ w tym przypadku zasugerowaµ dotyczy modu│≤w pamiΩci. Nie oznacza to, ┐e s▒ one wadliwe, bynajmniej, mo┐liwe jest r≤wnie┐, ┐e sprzedano Panu modu│y pamiΩci od r≤┐nych producent≤w o r≤┐nych (nieznacznie) parametrach, co powoduje, ┐e nie wsp≤│pracuj▒ one razem. NajczΩ╢ciej spotykan▒ r≤┐nic▒ pomiΩdzy modu│ami pamiΩci jest czas dostΩpu. Dla pamiΩci typu EDO jest to zazwyczaj 60 ms, ale mo┐na znale╝µ te┐ modu│y pracuj▒ce z szybko╢ci▒ 70 ms. Jest to czΩsto barier▒ nie do przebycia przez system samodzielnie zarz▒dzaj▒cy pamiΩci▒, a takim jest Windows 95. Jeszcze inna sprawa to ustawienia BIOS-u - polecam lekturΩ artyku│u "Potyczki z BIOS-em" na str. 86.
Programy DOS-owe dzia│aj▒ poprawnie, gdy┐ w bardzo nieznaczny spos≤b wykorzystuj▒ pamiΩµ powy┐ej granicy 640 kB. W przeciwie±stwie do systemu Windows 95, kt≤ry wykorzystuje ten obszar bardzo intensywnie.
RadzΩ zaopatrzyµ siΩ (np. od znajomego) w dwa inne modu│y pamiΩci, by sprawdziµ, czy i tym razem Windows odm≤wi pos│usze±stwa. Je┐eli nie, to sprawa jest oczywista. Pos│uguj▒c siΩ gwarancj▒ (o ile j▒ Pan posiada) proszΩ za┐▒daµ wymiany zakupionych pamiΩci, na modu│y zgodne (identyczne) ze sob▒. Z problemem tym spotyka│em siΩ ju┐ kilkakrotnie i za ka┐dym razem wymiana modu│≤w pamiΩci przynosi│a oczekiwany rezultat.

Dariusz Ha│as

 

Czy zainstalowanie specjalnych sterownik≤w do karty graficznej ATI 3D XPRESSION+ pozwoli na granie w gry wymagaj▒ce akceleratora 3Dfx?


Posiadam kartΩ graficzn▒: ATI 3D XPRESSION+ PC2TV (chip RAGE 2) i nie potrafiΩ znale╝µ odpowiedzi na pytanie czy karta ta mo┐e pracowaµ w trybie 3Dfx. Coraz wiecej gier wymaga 3Dfx i dobrze by│oby zobaczyµ te nowe mo┐liwo╢ci prezentowania grafiki jakie daje technologia 3Dfx. My╢la│em, ┐e pomo┐e zainstalowanie najnowszej wersji DirectX v5.0, ale to nic nie da│o (sterowniki DirectX zast▒pi│ tylko sterownik graficzny mojej karty ATI 3D na ATI RAGE/RAGE2 PCI (ati_m64). Gry wymagaj▒ce technologii 3Dfx w obydwu przypadkach (przed i po zainstalowaniu DirectX v5.0) albo siΩ nie uruchamiaj▒, albo wy╢wietlaj▒ komunikat o niemo┐liwo╢ci otwarcia biblioteki VIDEO_3DFX.DL. Nie wiem czy moja karta mo┐e obs│ugiwaµ 3Dfx - proszΩ o pomoc.
Piotr Oleszko

Niestety, w tym przypadku mam raczej smutn▒ wiadomo╢µ. Karta ATI 3D XPRESSION, ani ┐adna inna karta nie wyposa┐ona w uk│ad Voodoo 3Dfx nie mo┐e pracowaµ jako 3Dfx. Instalowanie jakichkolwiek sterownik≤w w takich sytuacjach to strata czasu. Jest to sprawa sprzΩtu a nie jakiegokolwiek oprogramowania. Chocia┐, byµ mo┐e, istnieje pewnego rodzaju rozwi▒zanie. Chodzi tu o programowy emulator uk│adu 3Dfx. Jednak na ile dobra jest to emulacja trudno powiedzieµ, gdy┐ nie pr≤bowali╢my tego emulatora stosowaµ w odniesieniu do kart 3D nie zawieraj▒cych uk│adu Voodoo.

Dariusz Ha│as

(c) Copyright LUPUS