IDE dla Watcom C/C++
-- Sebastian Pawlak, PCKurier 26/1997.
Jednym z najpopularniejszych na świecie kompilatorów języka C jest bez wątpienia Watcom C. Obsługuje on tryb chroniony - umożliwia korzystanie z całej pamięci komputera bez podziałów na segmenty. W programie bez żadnych kłopotów możemy zadeklarować tablicę o takich "skromnych" rozmiarach:
unsigned char tablica [10000000]; // tablica na 10MB można też przydzielić pamięć dynamicznie: unsigned char *tablica=new unsigned char [10000000]; delete [] tablica; // zwolnienie pamięci
Oprócz przedstawionych powyżej dogodności, Watcom C/C++ generuje kod o bardzo wysokich parametrach. Wiele firm produkujących gry komputerowe stworzyło dzięki temu kompilatorowi swoje największe hity - wymienię tylko kilka tytułów: DOOM, Raptor, System Shock, Descent, Magic Carpet, NASCAR Racing, Terminal Velocity itd. Obecnie nie widuje się już programów, które przy uruchamianiu nie wyświetlają "DOS4GW" (co oznacza, że pracują w trybie chronionym).
Mimo tych wszystkich zalet poważną wadą Watcom C jest brak dobrego IDE, czyli środowiska, w którym piszemy, sprawdzamy i uruchamiamy nasze programy. Uciążliwe jest pisanie kodu np. edytorem Norton Commander, zapisywanie na dysk, wychodzenie z edytora, uruchamianie kompilatora z odpowiednimi parametrami, później znów wchodzenie do edytora, odszukiwanie miejsc, w których były błędy, itd. Poza tym nie są podświetlane słowa kluczowe, kursor zawsze jest na początku wiersza, a nie tam gdzie zaczyna się wcięcie bloku tekstu. Po chwili zastanowienia doszedłem do wniosku, że do pisania programów w Watcom C może posłużyć IDE od Borland C++.
Oto jak namówić IDE Borlanda do współpracy z kompilatorem Watcoma:
- Do autoexec.bat wpisz: SET DPMIMEM=MAXMEM 1560
Dodaj ścieżkę dostępu do katalogu, w którym znajduje się "bc.exe". Z config.sys usuń EMM386, albo spraw by nie "pochłaniał" on całej pamięci komputera, np. możesz wpisać:
DEVICE=C:\\DOS\\EMM386.EXE 14000
Jeśli po zaimplementowaniu wszystkich narzędzi, w okienku komunikatów nie pojawiają się komunikaty o błędach, albo nie można uruchomić helpów, to oznacza, że nadal za dużo pamięci poświęcane jest dla EMS.
- Jeśli IDE od BC++ będzie używane tylko do edycji programów pisanych w Watcom C, to usuń plik z deklaracją narzędzi " tcdef.dpr". Uruchom IDE Borlanda, poprzez "bc.exe". - Otwórz z menu okno "Options", wybierz "Transfer..." - Zejdź na sam dół okna "Program Titles" tak, aby pasek wskazywał na puste miejsce, kliknij "Edit". - W pole "Program Titles" nowo otwartego okna, wpisz nazwę pierwszego implementowanego programu: ~Watcom C 32 Compiler Znak ~ oznacza, że litera stojąca po nim (W) będzie podświetlona na liście narzędzi. - W kolejne pole "Program Path" wpisz: C:\\WATCOM\\BINB\\WCL386 Ścieżkę należy zmodyfikować tak, aby wskazywała miejsce, gdzie znajduje się plik "WCL386.EXE" - W polu "Command Line" umieść parametry: -mf /ot -cc $SAVE ALL $NOSWAP $EDNAME $CAP MSG(tasm2msg) Trzy pierwsze parametry możesz zmieniać w zależności od tego, jak chcesz wywołać kompilator. - Przypisz narzędziu Hot Key (kombinację klawiszy po wciśnięciu, której uruchomisz kompilację), w tym celu kliknij na którejś z wolnych kombinacji Shift+F. Jeśli wszystkie skróty klawiszowe są już zajęte, zwolnij je, wybierając w zbędnych narzędziach "Unassigned". Teraz zaznacz jeszcze "Translator", kliknij "Modify" i gotowe. Jedno narzędzie już masz. Pozostałe programy deklaruje się w podobny sposób, więc podam tylko odpowiednie parametry (ścieżki należy tak modyfikować, aby prawidłowo wskazywały na pliki): *** kompilator C++ *** "Program Titles": ~Watcom C++ 32 Compiler "Program Path": C:\\WATCOM\\BINB\\WCL386 "Command Line": -mf /ot -cc++ $SAVE ALL $NOSWAP $EDNAME $CAP MSG(tasm2msg) zaznacz "Translator", wybierz Hot Key *** Watcom Programmers Guide Help *** "Program Titles": Watcom Programmers Guide Help "Program Path": C:\\WATCOM\\BIN\\WHELP "Command Line": PGUIDE wybierz Hot Key *** Watcom C Guide Help *** "Program Titles": Watcom C Guide Help "Program Path": C:\\WATCOM\\BIN\\WHELP "Command Line": CGUIDE wybierz Hot Key *** Watcom C Library Help *** "Program Titles": Watcom C Library Help "Program Path": C:\\WATCOM\\BIN\\WHELP "Command Line": CLIB wybierz Hot Key *** Watcom CPP Library Help *** "Program Titles": Watcom CPP Library Help "Program Path": C:\\WATCOM\\BIN\\WHELP "Command Line": CPPLIB wybierz Hot Key Hot Key`e należy ustawić tak, żeby łatwo było korzystać z narzędzi: Watcom C 32 Compiler Shift+F8 Watcom C++ 32 Compiler Shift+F9 Watcom Programmers Guide Help Shift+F2 Watcom C Guide Help Shift+F3 Watcom C Library Help Shift+F4 Watcom CPP Library Help Shift+F5
Teraz można kompilować programy w IDE Borlanda i uruchamiać helpy. Jeśli nie pamiętasz zdefiniowanych kombinacji klawiszy dla poszczególnych narzędzi, możesz je uruchamiać, wybierając odpowiednie z listy. Z menu gdzie znajduje się lista narzędzi, wybierz okno oznaczone potrójną poziomą kreską (tam, gdzie jest opcja "Repaint desktop").
Mimo dużych możliwości jakie daje wprowadzenie powyższych deklaracji, aby uruchomić skompilowany w IDE program, nadal trzeba wchodzić do DOS i wpisywać jego nazwę z linii poleceń. Jednak i tę niedogodność da się ominąć!
Należy skompilować poniższy program: WCL.EXE uruchom.c
/* Program zarządzający uruchamianiem spod IDE Borland`a */ /* programów pisanych w Watcom C */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <io.h> #include <fcntl.h> void main (int argc,char *argv[],char *env[]) { int Plik; char Lancuch[100]; if (argc<2) { printf ("brak parametru !\n"); exit (EXIT_FAILURE); } /* skoryguj ścieżkę do Twojego ide.bat, ma bć taka sama jak do bc.exe */ Plik=creat ("C:\\BORLANDC\\BIN\\IDE.BAT",S_IWUSR|O_TEXT); strcpy (Lancuch,"@uruchom -clear\n:jeszcze_raz\n"); strcat (Lancuch,"@bc.exe %1 %2 %3 %4\n\0"); write (Plik,Lancuch,strlen (Lancuch)); /* jeżli nie ma opcji -clear to ... */ if (strcmp ("-clear",argv [1])) { strcpy (Lancuch,"@"); strcat (Lancuch,argv [1]); strcat (Lancuch,"\n"); write (Plik,Lancuch,strlen (Lancuch)); strcpy (Lancuch,"@goto jeszcze_raz\n"); write (Plik,Lancuch,strlen (Lancuch)); } close (Plik); }
Plik ze skompilowanym programem "uruchom.exe" trzeba przenieść do katalogu, w którym znajduje się "bc.exe". Do listy narzędzi należy dodać jeszcze dwa:
*** RUN PROGRAM *** "Program Titles": RUN PROGRAM "Program Path": C:\\BORLANDC\\BIN\\uruchom "Command Line": $EXENAME $NOSWAP wybierz Hot Key Shift+F7 *** NO RUN PROGRAM *** "Program Titles": NO RUN PROGRAM "Program Path": C:\\BORLANDC\\BIN\\uruchom "Command Line": -clear $NOSWAP wybierz Hot Key Shift+F6 Teraz trzeba wybrać Shift+F7, aby program utworzył plik "ide.bat", a następnie Shift+F6. Wyjść z IDE. I to wszystko ! Teraz można już pracować, czyli: - wejść do katalogu, w którym będziesz tworzyć swój program np. C:\\WATCOM\\PROGRAMY\\, - następnie uruchom swoje nowe IDE, pisząc "ide.bat" - możesz podać pliki, które chcesz aby pojawiły się w edytorze, np. ide PIERWSZY.CPP. - Jesteś już w IDE, możesz otwierać pliki, zapisywać, edytować, korzystać z helpów, kompilować. - Skompiluj swój program (np. Shift+F8), a teraz obejrzyj jego działanie. W tym celu wciśnij Shift+F7 (RUN PROGRAM) - informacja o tym, że będzie on uruchamiany została umieszczona w pliku "ide.bat". - Wciśnij Alt+X (wyjście z IDE)... uruchomił się twój program! Przerwij jego działanie... jesteś w IDE! Dokonaj poprawek i ponownie uruchom program kombinacją klawiszy Alt+X... wykonuje się! Przerwij... znowu w IDE! Otwórz inny plik z programem, skompiluj go, przed uruchomieniem wciśnij ponownie Shift+F7, aby wpisać nazwę nowego pliku "exe" do "ide.bat", teraz możesz uruchomić program kombinacją klawiszy Alt+X.
No tak, ale teraz nie można wyjść z IDE! Owszem można,
wciśnij Shift+F6 (NO RUN PROGRAM) i teraz Alt+X ... jesteś w DOS!
Mam nadzieję, że przedstawione przeze mnie rozwiązanie problemu niewygodnej edycji programów w Watcom C usprawni i uprzyjemni ich pisanie.