Instrukcji do programu 'REAKCJE' jako takiej nie ma, gdyz korzystanie z niego jest bardzo proste i szybciej mozna nauczyc sie go metoda prob i bledow niz czytajac instrukcje. Tutaj tylko wspomne, ze najszybciej zadany efekt uzyskuje sie uzywajac procedur <T>hink , prze<M>iany , <P>rodukty lub <S>yntezy poprzez wcisniecie oznakowanego klawisza. Gdy wychodzimy z danej opcji uzywamy klawisza BCKSPC, dopiero gdy to nie dziala uzywamy ESC.
Dzialanie programu wynika z jego konstrukcji. Program tworzy Wielka Tablice Reakcji WTR i tylko z niej korzysta podczas dzialania (nie odwoluje sie juz do przeczytanej na wstepie bazy). Surowce (wiersze) i produkty (kolumny) naleza tylko do tzw. Surowcow Glownych (w tej chwili 108 typow zwiazkow) a nie do pomocniczych (ok. 120 typow). Uniknalem w ten sposob deklaracji tablicy 226 x 226x14 elementow (ktora by sie juz zupelnie nie zmiescila w DOS'ie), zamiast tego jest tablica 106 x 106x14, co zostalo okupione bardziej skomplikowa- nymi procedurami przepisujacymi dane z bazy do WTR.
Program zawiera tylko bezpieczne, sprawdzone procedury, tak ze wciskajac nawet
dowolne kombinacje klawiszy w trakcie dzialania programu nie dochodzi do
powazniejszych awarii. W szczegolnosci bezpieczne sa:
- dysk twardy lub inny z ktorego uruchomiono program;
- baza danych (BAZA1.REA), nie ma mozliwosci jej nadpisania lub skasowania;
- pliki potrzebne do pracy programu (program nie zapisuje w nich nic);
- pliki systemowe komputera (program ich nie uzywa);
- sam plik programu, *.EXE (program go nie modyfikuje).
Sytuacja ta moze sie zmienic np. w przypadku zainfekowania wirusem, ale to
takze normalne. Jesli chodzi o system, to 'wysypanie' sie programu konczy
sie , zarowno pod DOS jak i WINDOWS , bezpiecznym komunikatem:
*Hit any key to return to system*.
Niedociagniecia i jak sobie z nimi radzic.
1. Program nie wyswietla pelnych opisow dluzszych niz ok. 100 znakow.
W wersji 2.0. poprawiono wyswietlanie opisow (z kilkudziesieciu do 100
znakow) przy wlaczonej opcji 'pelne opisy' w CONFIG. Mozna to takze zmieniac
w trakcie dzialania programu opcja <D>lugosc frazy.
Zawsze pozostaje 'podgladniecie' pliku BAZA1.REA dowolnym ale prostym
edytorem (moze to byc EDIT, F3 Nortona Commandera, Notatnik, lub jakis edytor
dla programistow). Mozna to zrobic poniewaz plik BAZA1.REA jest niezakodowany.
Nalezy uwazac, aby nie nadpisac bazy w sposob niezgodny z jej struktura,
np. dopisanie jednego znaku " desynchronizuje ladownaie bazy. W tym celu
przy wychodzeniu z edytora zawsze odpowiadamy <No Save> lub podobnie.
2. Bledy podczas ladowania bazy
Przede wszystkim, zadeklarowane ilosci rekordow w pliku CONFIG.REA musza byc
wieksze od ilosci, ktore chcemy zaladowac z BAZY.
Jesli mimo to pojawia sie komunikat *Out of memory* lub podobny przyczyna jest
Wielka Tablica Reakcji (WTR). Jesli pamieci jest mniej niz 590 kB, moze nie
starczyc miejsca na wczytywane teksty. Efektem zalozenia takiej, (wypelnionej
w koncu tylko w 10% ) tablicy jest blyskawiczny dostep do danych (i szybkie
dzialanie programu) w przypadku powodzenia w uruchomieniu lub... w ogole
niemoznosc uruchomienia programu na danej maszynie.
Na razie jedynym wyjsciem jest usuniecie kilku zbednych programow
z pamieci "podstawowej" za pomoca np. zaREMowania ich w autoexec.bat lub
config.sys, np.:
rem share.exe (zajmuje okolo 6-17 kB)
rem mouse.com (mysz w DOS jest niepotrzebna, czasem zajmuje 10 kB !)
rem device=c:\dos\ramdrive.sys 2400 512 64 /E
itp. zabiegi.
Wpisujac w DOS'ie 5.0 "mem/c" lub w 6.x "mem/c/p" uzyskujemy info o zajetosci
pamieci podstawowej przez programy, sterowniki, itp.
KOMUNIKAT WINIEN PODAC PRZYNAJMNIEJ 590 KB JAKO "FREE MEMORY" !!!
3. Dopisanie nowych reakcji do bazy.
Mozna to zrobic, oczywiscie, recznie (tylko edytorkami typu EDIT lub dla
programistow, a nie np. WORD'em !), ale program posiada odpowiednia procedurke
w procedurze <S>yntezy. W v 2.0 dopisalem wygodna opcje wycofywania sie
prawie 'w ostatniej chwili' za pomoca BCKSPC.
Poniewaz program wyszukuje teraz powtarzajace sie opisy reakcji, deklarowana
w CONFIGu liczba opisow
>> Maksymalna liczba opisow reakcji w bazie :,650 <<
moze byc nawet mniejsza o ok. 5% (!) od faktycznej ilosci reakcji w bazie.
Niemniej jednak w przypadku duzych baz lub duzych przerobek trzeba ja bedzie
w CONFIGu zwiekszyc.
Wiekszych modyfikacji BAZY sam dokonuje i tak zawsze edytorem EDIT, tak ze nie
ma na razie koniecznosci przerobki programu (aby np.sam zmienial CONFIG, itd.).
4. Przeszukiwanie bazy inne niz programem REAKCJE.
Oprocz przeszukiwania po surowcach, produktach, syntezach o roznej liczbie
krokow program posiada krotka funkcje 'przeszukiwanie fraz'. Bardziej
wyrafinowane przeszukiwanie oferuja edytory, chocby EDIT. Przykladowo, aby
znalezc kwas karboksylowy wystepujacy jako produkt wpisujemy w okienko SEARCH:
[,"kwas.kbx",]. Zapis ["kwas.kbx"] oznacza znalezienie kwasu jako substrat
lub produkt zas [kwas.kbx] jest jeszcze ogolniejszy.
SKROTY W BAZIE.
Ze wzgledu na oszczednosc czasu przeszukiwania jak i miejsca w 1997 roku
wprowadzono do bazy nastepujace skroty:
vvv - rozbudowa szkieletu weglowego
ddd - destrukcja szkieletu weglowego
ppp - synteza pierscieni (rzadko wystepuje w liniowych wzorach)
identyf. - identyfikacja (+ wszystkie odmiany tego slowa)
[....] - literatura
#.... - nazwisko przy reakcji ulatwiajace dyskusje i szukanie
BOCT - bezwodnik octowy
dkbx - dekarboksylacja
ewent. - ewentualnie
gr. - grupa funkcyjna
.HCl - chlorowodorek
identyf. - identyfikacja (+ wszystkie odmiany tego slowa)
kw. - kwas, kwasny itd.
o-,m-,p-, - orto, meta, para
poch. - pochodne, pochodna
por. - porownaj
przegr. - przegrupowanie
reag. - reaguje
r. - reakcja, reaguja, reaguje, itd.
....r. - rok (odroznianie wg. kontekstu)
SnAr - substytucja nukleofilowa aromatyczna
r. - reakcja, reaguja, reaguje, itd.
reag. - reaguje
w skorowidzach (np. #FRIEDEL-CRAFTS).
s_nukl - substytucja nukleofilowa
sr. - srodowisko
Konwencje te zachowuje nadal aby ulatwic przeszukiwanie bazy.
Jesli dany surowiec/produkt mozna zaszeregowac do kilku grup, to trzeba
zaczac poszukiwania od 'bardziej podstawowych' (ale nie ma tu scislej
definicji). Np. poszukujac ogolnych syntez amin znajdujemy je podajac
zapytanie "Produkt amina1". Zapytanie "Produkt amina3" poda tylko metody
syntez amin III-cio rzedowych.
Wg. podobnych zasad wprowadzono tymczasowe slowo 'kompatybilnosc'. Napisanie
porzadnej procedury laczacej nieraz odlegle sciezki zajeloby duzo czasu.
Slowo to sluzy do pokazania komputerowi, ze np. glikol to tez alkohol, ale
nie odwrotnie. Poniewaz struktura danych w bazie jest nastepujaca:
"surowiec.glowny","produkt.glowny","surowiec.glowny lub pomocniczy"
"komentarz
to zapis:
"eter winylowy","eter","kompatybilnosc"
jest poprawny, bo kazdy eter winylowy to eter, ale:
"eter","eter winylowy","kompatybilnosc"
jest bledny, bo nie kazdy eter to eter winylowy.
Slowo 'kompatybilnosc' moze wiec dzialac tylko w kierunku bardziej ogolnego
produktu.
Kropki w nazwach chemicznych wziely sie z archaicznej wersji programu (1996),
kiedy to dzialania w bazie odbywaly sie wprost na nazwach (zmiennych typu
STRING), a nie na ich numerach, jak w tej chwili. Pozostawilem je jednak aby
nie powstaly jakies nieoczekiwane bledy.
Zmiany w wersji 1.5.
- poprawiono procedure przeszukiwania surowcow pomocniczych (pojawial sie
blad na koncu rozwijanej listy)
- dopisano kilka nowych metod do bazy i poprawiono kilka istniejacych
(reakcje zwiazkow Grignarda oraz TosMIC - izocyjanku tosylometylu)
- rozszerzono i poprawiono info (info2.txt) i przemyslenia (mysli2.txt)
- przekompilowano program na krotszy aby powiekszyc ilosc wolnej pamieci.
Zmiany w wersji 2.0
- dodano opcje 'Szybkie uruchamianie' w CONFIG.REA. Program startuje wtedy
szybko, bez strony tytulowej i uzywa tylko trybu tekstowego, co pozwala
na wspolprace z dowolnym monitorem, karta i wlasciwie z dowolnym PC-tem.
Jest to opcja w CONFIG.REA 'wyswietlanie fotografii VGA (T/N)' (wybrac N).
- dodano funkcje <D>lugosc frazy. Przy 'Dlugich' frazach ponad 100 liter
z opisu jest wyswietlane (nie dotyczy to wszystkich opcji pracy programu).
Wartosc startowa jest w CONFIG.REA 'pelne komentarze T/N' (wybrac T),
ale w czasie pracy programu rowniez mozna to zmienic.
- dodano podglad ilosci zaladowanych reakcji przy ladowaniu bazy
- dopisano kilka nowych metod do bazy i poprawiono kilka istniejacych
(reakcje zwiazkow Grignarda z NH2OR, #DAKINA I WESTA, substytucji nukleo-
filowej aromatycznej i nitroalkenow).
- poprawiono wyglad bazy BAZA1.REA (wiele drobnych poprawek).
- rozszerzono i poprawiono info (info3.txt) i przemyslenia (mysli3.txt)
- programistyczne, niewidoczne ale najbardziej czasochlonne poprawki:
- program wyszukuje powtarzajace sie opisy w bazie. Niby nic, ale daje to
duza oszczednosc pamieci i przyspiesza nieco prace programu.
Spowalnia to o ok. 20% ladowanie bazy (niezauwazalne na PC > 486).
- poprawiono dzialanie petli w programie. Wielokrotne (>50) notoryczne
wycofywanie sie z roznych opcji programu w wersji 1.5 moglo doprowadzac do
przepelniania stosu i konczyc sie 'wysypaniem' DOS'u (ale nie bylo to grozne).
W tej chwili stos nie zapelnia sie nawet przy dlugotrwalej pracy programu.
Zmiany
w v 2.1
- dodano kilkanascie ciekawych reakcji do bazy
- dodano Prometejskiej Wiedzy zNicz
- jak zwykle przejrzano i poprawiono kilka procedur
Zmiany w v 2.2
- dopisano kilkanascie reakcji amidyn, alkinow, alkanow, alkenow
Paweł Hoszowski
Praca wpłynęła do Chemfana: 5-03-2001