CRTBUG wersja 2 Spis treci: 1. Wprowadzenie, 2. Do czego suy CRTBUG, 3. Jak go uywa, 4. Gdzie tkwi bd w aplikacjach i jak CRTBUG go naprawia, 5. Co znacz komunikaty CRTBUGa, 6. Kontakt 1. Wprowadzenie Pierwsz wersj CRTBUGa napisaem w marcu 1999r. Stworzyem ten program, poniewa przestay dziaa aplikacje napisane w Pascalu. Mam tego u siebie cakiem sporo, a al mi byo kasowa tak wielu programw zwaszcza, e trudno dzi znale ich funkcjonujce odpowiedniki w Windows. Dziki CRTBUGowi "weterani DOSa" mog pokaza co potrafi take i na szybszych maszynach. 2. Do czego suy CRTBUG Najprociej mwic - tak modyfikuje tre programu, e nie zgasza on wicej komunikatu: RunTime error 200 (dzielenie przez 0) Raz naprawiony program nie wymaga ju adnych dalszych zabiegw, mona go uywa bez przeszkd nawet na jeszcze szybszych komputerach. 3. Jak go uywa Skadnia programu wywietlana jest za kadym razem, kiedy zostanie on uruchomiony bez parametrw. Aby zaprztn program do pracy wystarczy napisa: CRTBUG.EXE program1.exe program2.exe gdzie: program1.exe - to aplikacja zgaszajca wspomniany wczeniej bd program2.exe - to naprawiona wersja program1.exe Jeeli naprawiasz program PO RAZ PIERWSZY to NIE poprawiaj procedury Delay. Program zanim rozpocznie przerbki zapyta Ci o to. Opcji tej uywaj WYCZNIE do programw naprawionych wczeniejsz wersj CRTBUGa. Pniej najlepiej zamieni nazwy programw, gdy niektre mog poszukiwa wewntrznych nakadek, lub doczytywa dodatkowe dane. Pamitaj jednak, by zawsze zostawi kopi programu, na wypadek gdyby naprawa nie przebiega pomylnie. 4. Gdzie tkwi bd w aplikacjach i jak CRTBUG go naprawia Jak sama nazwa wskazuje bd tkwi w module CRT. Pozostaje jedynie odszuka bdny fragment i wstawi na jego miejsce to co trzeba. Pocztkowo wszyscy obwiniali sam kod procedury Delay, a konkretnie Delayloop, ktry liczy ile ma trwa opnienie. W tym te miejscu poprzednia wersja CRTBUGa dokonywaa modyfikacji. Program dziaa, ale nie byo adnych opnie - jednym sowem procedura Delay nie speniaa swojego zadania. Po kilku godzinach poszukiwa i sprawdzania rnych rozwiza metod prb i bdw doszedem, e naley zaj si sam procedur Initialize. To tutaj znajdowao si feralne dzielenie. Na szczcie z rozkazu dzielenia mona byo zrezygnowa, trzeba byo jeszcze zmieni nieco tre procedury: NOT AX NOT DX MOV CX,0037 DIV CX Na: NOT AX NOT DX MOV CX,55 JB @@3 MOV AX,65536 @@3: MOV DelayCnt.Ax Mniej wicej takich zmian dokonuje nowy CRTBUG. Po tych modyfikacjach Delay znowu zacznie opnia dziaanie programu tak jak trzeba. 5. Co znacz komunikaty CRTBUGa: "Podany program nie jest aplikacj BP7" - CRTBUG naprawia WYCZNIE programy napisane pod Pascalem. "Zbyt mao cech podobiestwa (n) dla: x." - Pojawia si jeeli program natrafi na bardzo zbliony do matrycy fragment kodu, jednak ilo cech podobiestwa jest zbyt maa. Zabezpieczenie to zapobiega modyfikacjom przypadkowych fragmentw kodu. "Poprawianie kodu "Delay" Adres [B]: x." - Pojawi si jeeli na wstpie uytkownik zezwoli na poprawienie tego co zmienia poprzednia wersja CRTBUGa. "Poprawianie kodu "Initialize" Adres [Bp]: x." - To jest najwaniejszy komunikat. Oznacza on prawidowe poprawienie kodu aplikacji. Powinien pojawi si jeden raz. "Nieobsugiwany typ pliku. Obsugiwany typ to EXE." - Pojawi si jeeli uytkownik bdzie prbowa naprawi inny typ pliku ni EXE. "Bd relokacji danych. Zbyt mao podobiestw: n/t/52." - Jego pojawienie si jest bardzo rzadkie (jeszcze si nie spotkaem) i oznacza, e program nie moe by poprawiony, gdy pod dokonaniu poprawek jego kod wykazuje zbyt mao podobiestw z poprawn matryc. Program po prostu nie zadziaa. 6. Kontakt Jeeli CRTBUG nie zadziaa jak powinien, lub wywietli komunikat o bdzie napisz na adres: mabak@polbox.com Maciej Bk d 93249 Ul. Ejsmonda 3m40 Tel. (0-42) 642-2886 (0-601) 914-062 Jeeli CRTBUG jako Ci pomg - NAPISZ! Nie wysyaj poczt skompresowanych programw, a jedynie opis zachowania CRTBUGa i nazw naprawianego programu.