Windows 3.1. Ostrożnie z programem SMARTDRV
- Marian Łakomy,
- 25.05.1992
Zainstalowałem znakomity program Windows 3.1 i natychmiast zaczęły się kłopoty z moim komputerem.
Zainstalowałem znakomity program Windows 3.1 i natychmiast zaczęły się kłopoty z moim komputerem.
Ponieważ mam nowy komputer, sądziłem, że trudności spowodowane są przez niezgodność procedur BIOS-u z wymaganiami Windowsów. Pracuję dużo z programami, które dobrze się sprawują mając do dyspozycji co najmniej 512 kB pamięci stronicowanej EMS. Dla programu Windows taka konfiguracja komputera jest niewskazana; przygotowałem wobec tego dwa pliki konfiguracyjne CONFIG.DOS i CONFIG.WIN oraz dwa pliki AUTOEXEC.DOS i AUTOEXEC.WIN, które kopiuję, odpowiednio, do CONFIG.SYS i AUTOEXEC.BAT. Aby sobie ułatwić życie i nie popełniać pomyłek przygotowałem także plik WINI.BAT o postaci:
@copy c:\bat\config.win c:\config.sys
@copy c:\bat\autoexec.win c:\autoexec.bat
@warmboot
i plik DOSINI.BAT
@copy c:\bat\config.dos c:\config.sys
@copy c:\bat\autoexec.dos c:\autoexec.bat
@warmboot
Program WARMBOOT powoduje start systemu operacyjnego z nową konfiguracją. Okazało się, że komputer startuje z przypadkową konfiguracją, a nawet zdarzyło się, że plik AUTOEXEC.BAT zawierał tak zwaną "sieczkę".
Dokładniejsza analiza kłopotów pozwoliła sprowadzić je do stwierdzenia, że kopiowanie plików w moim komputerze przebiega z błędami. Sprawcą okazał się program bufora dyskowego SMARTDRV z programu Windows 3.1, zainstalowany na pierwszym miejscu w pliku AUTOEXEC.BAT (czyli obecnie AUTOEXEC.WIN). Program instalacyjny Windows 3.1 nie dodaje żadnych opcji do tego programu, co powoduje, że buforowane przy odczycie są stacje dyskietek A: i B: oraz buforowane przy odczycie i zapisie są dyski stałe (C: i D:). Wywołanie pokazanego DOSINI powodowało skopiowanie plików CONFIG.DOS i AUTOEXEC.DOS do bufora dyskowego i nim program SMARTDRV zapisał je na dysk stały, następowało wywołanie programu WARMBOOT. Pliki ginęły w buforze dyskowym. Oczywiście, podobne kłopoty mogą się przytrafić przy korzystaniu z innych programów, często zapisujących na dysk.
Proste rozwiązanie problemu polega na dodaniu opcji C do programu SMATRDRV, jeśli mamy tylko jeden dysk stały; opcji C D dla dwóch dysków stałych itd. Wiersz wywołania tego programu powienien być następujący:
C:\WINDOWS\SMARTDRV C
Opcja C (równoważna opcji C-)powoduje, że dysk stały C: nie jest buforowany przy zapisie: dane są zapisywane bezpośrednio na dysk, nie do bufora. (Opcja C+ powoduje, że dysk stały C: jest buforowany przy zapisie i odczycie). Po tej zmianie kłopoty zniknęły.