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.
Gdy trzeba 'popchnac' program najlepiej zrobic to klawiszami strzalkowymi.
Dzialanie programu wynika z jego konstrukcji. Program tworzy Wielka Tablice Reakcji WTR i korzysta z niej dzialania (nie odwoluje sie juz do przeczytanej na wstepie BAZA1.REA ale odwoluje sie do BAZA2.REA (od wersji 2.3. wlacznie) co wyniklo z checi umieszczenia dluzszych opisow (w 640 kB DOS-memory trzeba bylo podeprzec sie dyskiem...).
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;
program w 99% przypadkow ja czyta, dopisuje do niej tylko proc. <Syntezy>.
- baza danych (BAZA2.REA), program tylko ja odczytuje;
- 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).
1. Wyswietlanie opisow.
W WERSJI 2.3. dodano 'FULL TEXT' czyli wyswietlanie dowolnej ilosci tekstu pod reakcja. Procedura ta dziala dobrze z procedura <przeMiany> <Produkty>, <Reakcje>, <Fraza>, <Syntezy> (Gdy <D>lugosc frazy = 1 a nie 0!). Niestety, nie chciala ona wspoldzialac z <THINK !> ani z <Ciag reakcji>, dosc skomplikowanymi, rekurencyjnymi procedurami (ktore w przyplywie fantazji napisalem w 2000 roku). Procedury te odwoluja sie do siebie samych az znajda pozadany cel; odwolanie sie do innych procedur w tym czasie (np. 'full text') niszczy prawdopodobnie stos DOS'u, ale nie sprawdzalem. Te dwie procedury pozostawilem wiec 'niepodlaczone' do 'full text', tzn. wyswietlaja tekst 'po staremu' (ale tez niezle po poprawkach z v.2.0). Zawsze pozostaje 'podgladniecie' plikow BAZAx.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
gdy tylko nie jestesmy pewni swoich dzialan w 100%.
2. Mozliwe problemy podczas ladowania bazy
Przede wszystkim, zadeklarowane ilosci rekordow w pliku CONFIG.REA musza byc
wieksze od ilosci, ktore chcemy zaladowac z BAZA1.REA.
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.
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. 10% (!) od faktycznej ilosci reakcji w bazie (w tej chwili np. jest ok. 800 reakcji podstawowych w BAZA1.REA i tylko 650
opisow roznych od siebie).
3. Zwiekszanie ilosci pamieci 'podstawowej'.
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" !!!
4. 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.
Nalezy pamietac, ze dopisujac reakcje dokladamy jeden opis wiecej, a rezerwa jest ograniczona w CONFIGU ( w tej chwili 650 ). W przypadku duzych przerobek
BAZA1.REA trzeba zwiekszyc te liczbe w CONFIGu.
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.).
5. Przeszukiwanie bazy inne niz programem REAKCJE.
Oprocz przeszukiwania po surowcach, produktach, syntezach o roznej liczbie
krokow program posiada krotka funkcje 'przeszukiwanie <Fraz>'. Dziala ono DLA OBU BAZ (1 i 2 !) (tj. jak gdyby fraza byla ciagla - pomimo, ze
niejako 'z definicji' nie jest, bo ma nie zajmowac pamieci !). Innego typu przeszukiwania 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 (znajduje go w opisach).
6. Zatrzymywanie programu w trakcie.
Program w kazdym momencie mozna zatrzymac przyciskiem PAUSE/BREAK.
Jest to wygodne gdy np. opcja 'przeszukiwanie <Fraz>' poda zbyt duzo linii.
Jest to mozliwe, gdyz pozostawilem ten klawisz programowo nie zablokowany.
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
c. - stezenie
dkbx - dekarboksylacja
ewent. - ewentualnie
gr. - grupa funkcyjna
.HCl - chlorowodorek
identyf. - identyfikacja (+ wszystkie odmiany tego slowa)
NIE REAGUJE - takze NIE REAGUJA, dawn. NIE ZACHODZI, BRAK REAKCJI...
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
srod. - srodowisko
w ob. - w obecnosci
wyd. - wydajnosci
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.
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. Ze wzgledow programowych kropki zastepuja czasem przecinki w nazwach.
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 (92kB!) aby zwiekszyc 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 (aby uniknac przepelnien stosu, itp.).
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
Zmiany w v 2.3
- Dopisano opcje 'full text' wyswietlania dlugich opisow pod reakcja. Funkcja jest wylaczana nadal poprzez <D>lugosc frazy.
- Dopisano procedury czytajace BAZA2.REA z tzw.'dlugimi komentarzami'. Procedury obslugujace 'sklejanie' sa tak napisane, ze nawet gdy nie znajda
'drugiego kawalka' to program nie zatrzymuje sie tylko zostanie wyswietlony odpowowiedni komunikat w miejscu brakujacego opisu i wszystko dziala dalej.
Dopiski z BAZA2.REA nie obciazaja pamieci RAM i moga stac sie w przyszlosci np. encyklopedia. Byc moze kiedys program bedzie czytal *.PCX'y, ale wolabym
zeby sam umial rysowac wzory.
Paweł Hoszowski
Praca wpłynęła do Chemfana: 10-05-2001