HACKERNieco przesadziłem, że nie było programu służącego do poprawiania zawartości innych programów, lecz jest to uzasadnione. Istniejące programy są tak ubogie, że nieomal ze wstrętem o nich wspominam. Z nieprzyzwoicie żółwim tempem działania (jako, że napisane w Basic-u), ze skomplikowaną obsługą i z żenującym wyglądem nie przedstawiał taki program większej wartości. HACKER jest pozbawiony tych wad. Wielu może mi zarzucić, zupełnie słusznie, że ma za to wiele innych. Wynikają one z kompromisu pomiędzy mieszczącym się w granicach przyzwoitości estetycznym wyglądem, prostotą obsługi i przede wszystkim jak najmniejszą długością kodu maszynowego. Oto krótka instrukcja obsługi. Po uruchomieniu programu ukaże się okno z kursorem. Początkowo możliwe jest tylko wybranie opcji odpowiadającej wgraniu programu do bufora lub wyjściu z programu, pozostałe funkcje na razie nie są aktywne. "Wgranie programu" i "Nagranie programu" służą do operacji WE/WY, ich znaczenie jest oczywiste. Po wybraniu jednej z nich podajemy nazwę urządzenia zewnętrznego (magnetofonu "C:" lub stacji dysków "D:"), a po znaku ":" nazwę pliku w przypadku urządzenia "D:". Program posiada diagnostykę błędów, więc w przypadku wystąpienia tegoż zostaniemy o tym poinformowani. Po poprawnym wgraniu jakiegoś programu możemy już używać pozostałych funkcji. "Przeglądanie programu" służy do swobodnego podglądania kodu maszynowego programu, który jest wyświetlany w postaci liczb szesnastkowych (hex), w kodzie ATASCII (asc) oraz w kodzie Internal (int) czyli wewnętrznym kodzie pamięci obrazu. Jest również wyświetlany szesnastkowy adres, którego wartość oznacza numer kolejnego bajtu w buforze (numerujemy od zera). Mamy do dyspozycji sześć klawiszy służących do zmiany adresu wyświetlania programu. Możemy zmniejszać lub zwiększać adres o jeden bajt (odpowiednio klawisze "+" i "*"), o 16 bajtów (hex: $10) (klawisze "-" i "=") oraz o 256 bajtów (hex: $100) (klawisze "<" i ">"). Zauważmy, że nie możemy ustawić adresu końca programu, lecz maksymalnie adres końca minus siedem bajtów. Wynika to z tej przyczyny, że wyświetlany adres wskazuje zawsze na pierwszy wyświetlany bajt, a jest ich wyświetlanych osiem. Powoduje to drobne niedogodności w dalszych opcjach, których znaczenie już wyjaśniam. "Szukanie ciągu bajtów" pozwala nam na odnalezienie odpowiedniej sekwencji rozkazów lub odpowiedniego ciągu znaków. Po wybraniu tej opcji program oczekuje od nas ciągu 8 bajtów w postaci szesnastkowej, które chcemy odnaleźć. O wyniku poszukiwań poinformuje nas odpowiedni komunikat. Jeżeli ciąg bajtów został znaleziony, to adres programu zostanie ustawiony na początku tego ciągu, wyjątek stanowi przypadek, gdy ciąg zaczyna się od jednego z ostatnich siedmiu bajtów programu. Należy pamiętać, że ciąg jest poszukiwany od aktualnie ustawionego adresu plus jeden do miejsca ponownego wystąpienia poszukiwanej sekwencji kodu lub do końca programu. Dlaczego od adresu plus jeden? Otóż znacznie ułatwia to poszukiwanie kolejnego wystąpienia poszukiwanego ciągu. Po odnalezieniu poszukiwanych bajtów możemy teraz zmienić je według własnych potrzeb. Wybieramy opcję "Zmienianie ciągu bajtów" i oczom naszym ukazuje się następujący widok: otwiera się okno z napisem "Stare", po którym jest wyświetlone szesnastkowo 8 bajtów od aktualnego adresu oraz po wyrazie "Nowe" przyjaźnie mrugający do nas kursor. Obowiązują tutaj takie same zasady wpisywania, jak w przypadku opcji "Szukanie ciągu bajtów". Klawisz RETURN akceptuje wpisany ciąg, co powoduje nieuchronną, trwałą zmianę kodu programu. Zasady obsługi opcji "Nagrywanie programu" są analogiczne jak w przypadku "Wgrywania programu". Gdy zakończyliśmy zabawę wybierając opcję "Powrót do systemu" mamy szansę opuszczenia właśnie obsługiwanego programu. Tak w skrócie przedstawiają się możliwości HACKERa. Program powstał przede wszystkim z myślą o użytkownikach magnetofonów, ponieważ posiadacze stacji dysków mają doskonałe narzędzie do przeglądania i poprawiania programów bezpośrednio na dyskietce, a mianowicie Turbo Watson-a. Mam nadzieję, że wszyscy, którzy zadali sobie trud, aby wpisać ten program z gazety oraz zdołali go uruchomić będą zadowoleni z jego użytkowania. Życzę wszystkim "włamywaczom" pomyślnego i efektywnego zmieniania niektórych bajtów w programach, które z różnych powodów nas irytują. 1000 REM --------------------------- 1001 REM : HACKER : 1002 REM : (c)1991 Tajemnice Atari : 1003 REM : autor: Leon Pasternak : 1004 REM --------------------------- 1010 DATA ffffe002e102e0b1e0b150baa9 1020 DATA 0085e285e385e42049b2a9108d 1030 DATA d902a9038dda02a9218d2f02a9 1040 DATA 9b8d50baa98085f1a9ba85f2ad 1050 DATA e70285f6ade80285f7a2012025 1060 DATA b6a90085f320bbb79004a90585 1070 DATA f320fdb7a4f39848b93db285ef 1080 DATA b943b285f0203ab26810de6cef 1090 DATA 005402d24ec679b2b3b3b4b2b4 1100 DATA ad470348ad460348a97d60a203 1110 DATA 2025b6a9cfa2002070b7209ab4 1120 DATA 900160a90420fdb83032a90085 1130 DATA e285e3a9079d4203a5f685e59d 1140 DATA 4403a5f785e69d4503a9d838e5 1150 DATA f69d4803a9b1e5f79d490320fa 1160 DATA b8c088f0149810034c0db6a209 1170 DATA 2025b620f3b82068b84cf0b6bd 1180 DATA 480385e21865f685e7bd490385 1190 DATA e365f785e84cf3b8a204201cb6 1200 DATA a94fa2012070b7209ab4b02aa9 1210 DATA 0820fdb830c1a90b9d4203a5f6 1220 DATA 9d4403a5f79d4503a5e29d4803 1230 DATA a5e39d490320fab830e020f3b8 1240 DATA 30db60a205201cb6a5e6c5f790 1250 DATA 08d00ca5e5c5f6b02fa5f6a6f7 1260 DATA d025a5e518690785e9a5e66900 1270 DATA 85eaa5eac5e89016d006a5e9c5 1280 DATA e7900ea5e738e908a6e8b001ca 1290 DATA 85e586e6a008a9eea2003820dd 1300 DATA b5a90085f5a80a6921aab1e548 1310 DATA 8aa868482057b891ed98186920 1320 DATA a86891ede6f5a5f5c90890dfa0 1330 DATA 66a5e538e5f60820beb828a5e6 1340 DATA e5f720beb82068b8b038a005d9 1350 DATA c6b3f0058810f830ef98c00390 1360 DATA 0338e903aa9013bdccb31865e5 1370 DATA a8bdcfb365e685e684e54c07b3 1380 DATA a5e538fdccb3a8a5e6fdcfb3d0 1390 DATA eb4cf0b6060e36070f37011000 1400 DATA 000001a207201cb6a90ea20120 1410 DATA 70b7a90ea201a4e41820ddb520 1420 DATA 69b5900160a5e585e9a5e685ea 1430 DATA c5f7d006a5e5c5f6f006e6e9d0 1440 DATA 02e6eaa5eac5e89010d006a5e9 1450 DATA c5e79008a20a2025b64c4bb4a0 1460 DATA 00a200b1e9dd73bad0d9c8e8e4 1470 DATA e490f3a5eac5e8900bd0df8898 1480 DATA 1865e9c5e7b0d6a5e985e5a5ea 1490 DATA 85e6a2082025b64caab2a20620 1500 DATA 1cb6a008a92ea2013820ddb5a9 1510 DATA 4ea2012070b7a90085f32069b5 1520 DATA b00ba4e488b973ba91e58810f8 1530 DATA 60a2022025b62068b84820f0b6 1540 DATA 68c92df004c90cd0ea20f0b668 1550 DATA 6868a9228d2f0260a2008e4fba 1560 DATA 86f3bd50ba9d62bae8c99bd0f5 1570 DATA a6f3bd62bac99bf0132057b8a0 1580 DATA 038c1802a00091e02054b7e6f3 1590 DATA d0e42068b8b03fae4fbad022ee 1600 DATA 4fbac90cf01bc934f017482041 1610 DATA b7d004684cf4b4a000a90091e0 1620 DATA a99b9d61bad0eac90cd01da5f3 1630 DATA 18f0cb08a200bd62ba9d50bae8 1640 DATA c99bd0f528082097b720f0b628 1650 DATA 60aac934d00c2041b7f08da99b 1660 DATA 9d61bad086bd51fbc92ef01fc9 1670 DATA 2af01bc9309093c93a90138a09 1680 DATA 40aabd51fbc93af008c9419080 1690 DATA c95bb01aa6f3d008c945f012c9 1700 DATA 53f00ee00fb00a9d62baa99b9d 1710 DATA 63bad0be4cc8b4a90085f52068 1720 DATA b8b00dc90cd012a5f3f0f3a5f5 1730 DATA d0ef18082097b720f0b62860c9 1740 DATA 34d0112041b7f0dca5f5490185 1750 DATA f5d0d4c6e410d020d5b8b0cba5 1760 DATA f3c910b0c5e6f3a5e085eda5e1 1770 DATA 85ee2054b78aa00020c7b88aa6 1780 DATA f5d00be6f50a0a0a0a85e94c6d 1790 DATA b5c6f505e948a5f34a85e4aa68 1800 DATA 9d72ba4c6db566f0204cb898aa 1810 DATA 0a85f365e085e09002e6e1ca30 1820 DATA 1a86efa4efb1e506f0b003bd73 1830 DATA ba66f006efa4efc820beb8ca10 1840 DATA e660a949a2ba2085b8a20b2025 1850 DATA b64ca7b2a5e205e3d003686860 1860 DATA a91a85efa9b985f0a000caf015 1870 DATA a006b1efc8c99bd0f9981865ef 1880 DATA 85ef90eae6f0b0e6a203b1ef95 1890 DATA e99d7bbac8ca10f52048b8a200 1900 DATA a5ec85f3a4ebb1ed81f12020b8 1910 DATA 8810f62030b8c6f310eda003b9 1920 DATA e90081f12020b88810f52048b8 1930 DATA a5eb85f3a200a000bde7b691ed 1940 DATA e8c8bde7b691edc6ebd0f6e8bd 1950 DATA e7b691ed2030b8c6ecf008a203 1960 DATA a5f385ebd0d9e8e6ece00790f3 1970 DATA a004b1ef85e9c8b1ef85ea84eb 1980 DATA 2048b8a00084ece6eba4ebb1ef 1990 DATA a4ecc99bf012c900f0082057b8 2000 DATA 91edc8d0e62030b84cc4b66051 2010 DATA 52457c007c5a5243a200a00020 2020 DATA 27b8a1f199e900c8c004d0f320 2030 DATA 48b8a4ec2030b888d0faa200a0 2040 DATA 002027b8a1f191edc8c4eb90f4 2050 DATA f0f2203cb8c6ec10e9a0002027 2060 DATA b8a1f199e900997bbac8c004d0 2070 DATA f02048b82020b888d0fa60a6f3 2080 DATA f00ec6f32061b7a900a891e0c8 2090 DATA 91e08a60a514c514f0fce6e0d0 2100 DATA 02e6e160a514c514f0fca5e0d0 2110 DATA 02c6e1c6e06018655885e08a65 2120 DATA 5985e1a514c514f0fca9a58d26 2130 DATA 02a9b78d2702a9068d180285f4 2140 DATA a9008d190260a514c514f0fca9 2150 DATA 0085f48d18026048984808a000 2160 DATA b1e0498091e0a5f48d18022868 2170 DATA a86860a003b97bba99e9008810 2180 DATA f72048b8a4f32030b88810fa20 2190 DATA fdb72068b8b023c90fd00ca5f3 2200 DATA c905f0f1200ab84cd4b7c90ed0 2210 DATA 0aa5f3f0e32015b84cd4b7c90c 2220 DATA d0d91860a4eb88b1ed498091ed 2230 DATA 88d0f76020fdb72030b8e6f34c 2240 DATA fdb720fdb7203cb8c6f34cfdb7 2250 DATA e6f1d002e6f260a5f1d002c6f2 2260 DATA c6f160a5ed18692085ed9002e6 2270 DATA ee60a5ed38e92085edb002c6ee 2280 DATA 60a5e9a6ea18655885ed8a6559 2290 DATA 85ee600a084ac960b006e91fb0 2300 DATA 0269600a286a60a2ff8efc02ec 2310 DATA fc02f0fbadfc028efc02a22d20 2320 DATA 85f9c91cf0021860386085ed86 2330 DATA eea90085e985eaa207f8980aa8 2340 DATA a5e965e985e926eaca10f2d8a0 2350 DATA 02a5e920adb8a5ea4cb6b84820 2360 DATA b6b8684a4a4a4a290f093091ed 2370 DATA 88604820c7b8684a4a4a4a290f 2380 DATA 0910c91a9002690691ed8860a2 2390 DATA ffe8e010b006dde3b8d0f61860 2400 DATA 321f1e1a181d1b3335303f1512 2410 DATA 3a2a38a210a90c9d42034c56e4 2420 DATA a2109d4a03a9509d4403a9ba9d 2430 DATA 4503a9039d4203a98085119d4b 2440 DATA 03d0e007160063840057677261 2450 DATA 6e69652070726f6772616d7500 2460 DATA 50727a65676c6164616e696520 2470 DATA 70726f6772616d7500537a756b 2480 DATA 616e6965206369616775206261 2490 DATA 6a746f77005a6d69616e612070 2500 DATA 726f6772616d75004e61677261 2510 DATA 6e69652070726f6772616d7500 2520 DATA 506f77726f7420646f20737973 2530 DATA 74656d759b0211014667014e61 2540 DATA 207065776e6f203f2028542f4e 2550 DATA 299b021800a7c8004e617a7761 2560 DATA 3a9b0218012748014e617a7761 2570 DATA 3a9b051600c8e9006865783a00 2580 DATA 6173633a00696e743a00416472 2590 DATA 65733a20249b03190106270153 2600 DATA 746172653a004e6f77653a9b02 2610 DATA 1f00e0010142616a7479202868 2620 DATA 6578293a9b040e00e72a014369 2630 DATA 6167206a6573749b05140084e7 2640 DATA 00506c696b207a62797420646c 2650 DATA 7567699b040e00e72901427261 2660 DATA 6b2063696167759b05140084e9 2670 DATA 00426c6164202330303120219b 2680 DATA 009b LEON
|