Tajemnice ATARI

HACKER

    Podczas wieloletniego użytkowania komputerów ATARI serii XL/XE spotkałem się z potrzebą zmiany niektórych bajtów w pewnych programach. Jak sądzę wielu ludzi zajmujących się poważniej pisaniem programów zetknęło się z tym problemem. Niestety nijak nie mogło tego uczynić, a to z tej prozaicznej przyczyny, że nie istniało narzędzie służące do tego celu. Właśnie dlatego powstał ten program.

   Nieco 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



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001