POKES
Д. Палтусов, который только что поделился своими результатами исследования ELITE активно исследует и другие программы. Вот список некоторых POKES, которые ему удалось отыскать самостоятельно:
2778З,0 48241,0
35427,24: 35426,0
40142,195
36584,0
53567,0: 50205,0: 50206,0: 50207,0:
27038,8 (в начале)
48437,167
53407,N
30960,N
27652-27657,0
31007,0: 31008,0: 31009,0
48535,0: 48559,0
(энергия)
42198,0: 48700, 107 (жизни)
46565,0: 61534,0 40167,0 41047,36 31378,N: 31386,N
31249,N: 31305,N (N-оснастка корабля)
41914,0
44588,201
36579,175:36578,0
49233,54: 49234,1: 49235,0: 49236,0
43516,0
51904,0
39402,0
36197,0
31171,0
54500,183
TUTANKHAMUN MOTOS LODERUNNER DOWN TO EARTH SANXION KNIGHT LORE SPELLBOUND BATTY CHRONOS BOULDER 4 COMMANDO BOULDER 1 METAL ARMY
KRAKOUT N^.M.A.D. RENEGADE ACADEMY
EQUINOX
HYSTERIA
L. NINJA 2
GUNFRIGHT
ASTEMEX
AIR FORCE II
CIBERNOID
CIBERNOIDD 2
FRED
IMPACT
Два слова о том, как ищутся адреса для POKES на примере программы N.O.M.A.D Зная, что в программе в исходном состоянии игрок имеет 3 попытки, наш читатель предположил, что где-то есть ячейка памяти, в которой хранится это число. Можно также предположить, что засылается оно туда в начале работы программы через регистр A. Это, конечно не единственный способ засылки числа в память, но он достаточно удобен и широко распространен.
Просмотрев с помощью дисассемблера программу, он сразу отбросил те области, в которых хранится графика, спрайты, тексты и т.п., сосредоточившись на машинном коде. (Как можно всего за несколько минут прикинуть где что в программе находится, "ИНФОРКОМ" писал во 2-ом томе трехтомника по программированию в машинном коде.)
Такой беглый просмотр позволяет выделить для более подробного исследования область длиной всего в несколько Кб. В этой области ищется команда Ассемблера LD A,3. Это занимает еще несколько минут. Если таких точек несколько, их надо будет все испытать, что делается следующим образом.
Рассмотрим фрагмент программы:
LD A,3
LD (34586),А LD (34480),А LD HL,27304 LD (34584),HL
Итак, есть подозрение, что в ячейке 34536 или 34480 организована переменная, в которой хранится количество попыток. Давайте проверим ячейку 34586.
С помощью поисковых возможностей ДИСАССЕМБЛЕРа найдем где еще упоминается этот адрес и посмотрим, что там записано. Обычно это выглядит так:
LD A,(34586) DEC A
LD (34586),А
Команда DEC A, уменьшающая значение в аккумуляторе на единицу, - прекрасный кандидат на то, что мы ищем. Ведь после гибели героя количество попыток уменьшается на одну.
Проверим это. Заменим DEC A на команду NOP (нет операции - ее код =0), и запустим программу после этой переделки. Если мы попали правильно, Ваш герой теперь бессмертен.
А вот как ищутся пароли для игры. Возьмем программу SABOTAGE, пройдя первый уровень удалось установить пароль второго (его программа выдала сама) - "BUMBLE BEE 2".
Теперь найдем место в программе, где хранится эта фраза, можно даже не пользоваться ДИСАССЕМБЛЕРом, а сделать это из БЕЙСИКа.
Код буквы "В" равен 66, а код буквы "U" - равен 85. 10 FOR i=25000 TO 65535:
IF PEEK i = 66 AND РЕЕК (i+1) = 85 THEN PRINT i 20 NEXT i
Когда будет найдено место в программе, в котором имеется сообщение "BU... ", компьютер выдаст вам его адрес, проверьте близлежащие адреса. В них может быть тоже что-либо интересное, так удалось установить пароли прочих уровней:
2) BUMBLE BEE 2.
3) HONORARIUM.
4) PHENOMENON.
5) ONOMASTICS.
6) SALMAGUNDI.
7) PSEUDONIMOUS.
8) ONOMATOPEDIA.
Мы благодарим Д. Палтусова за интересную информацию и вынуждены только пожалеть, что в ELITE COMPETITION он не занял призового места. Он нашел великолепный технологически развитый маршрут для галактики N1, но не догадался исследовать галактику N7, как это сделали победители.
Кстати, о паролях. Наш читатель Жукович Н. Н. из г. Усолье-Сибирское очень просит помочь ему найти пароль 8-го уровня в игре IMPACT. Может быть кому-то удалось его пройти? Для тех же, кто хочет попробовать свои силы в этой увлекательной игре, он сообщает пароли прочих уровней.
В игре 9 уровней по 10 экранов:
Экран 1 - пароль не требуется,
Экран 11 - EGGS Экран 21 - CHIP Экран 31 - LEAD Экран 41 - TICK Экран 51 - CASE Экран 61 - FACE Экран 71 ???? Экран 81 - USER
Наш читатель из г. Смоленска, Коновалов А. В. тоже активно работает с POKES. К сожалению, он отмечает, что некоторые POKES из тех, что были опубликованы в №10 у него не пошли. В то же время, известно, что по стране ходят многочисленные версии даже для одной и той же игры. Поэтому для тех, у кого не пошли какие-то POKES, он предлагает воспользоваться прилагаемым ниже набором.
Все прилагаемые POKES вставляются после последнего LOAD"", a не между USR.
GAMEOVER1
HORACE AND SPIDERS MAG-MAX MUTANT MONTY CYBERNOID-1 VIXEN-III FIREBIRDS XEVIOUS BLADE WARRIOR
KARNOV GAMEOVER2
GONZZALEZZ 2
ASTEMEX GONZZALEZZ 1 METAL ARMY
ACTION FORCE 2 KRION
GLUG GLUG PSSST
ROGUE TROOPER EQUINOX (для версии ROBY86)
39334,0 (жизни) 32417,0 (гранаты) 27680,60 58472,60
55761,60: 56483,183
39403,0
41423,0
27235,0
53592,n
37161,0
39490, 60
25620,0
38704, 0 (жизни) 32388,0 (гранаты) 35749,0 (жизни) 48056,0 (оружие) 43517,52 37085,0
36697,0 (жизни) 42650,0 (энергия) 47874,182 45004,0 (жизни) 44486,0 (горючее) 34139,0 24984,0 30924,0
39858,52:39659,182 (жизни) 48691,0:48762,0 (горючее и лазер)
STAINLESS STEEL UNDER WURLDE RICK DANGEROUS
46957,60 59376,0
55460,0 (жизнь)
61045,0 (гранаты)
60954,0 (патроны)
47250,0
30873,0
46459,0
48735,60
43742,0
27243,100
CAVELON
R-TYPE
DAN DARE 2/1
VIGILANTE
KOKOTONI WILF
PETER PACK-RAT
49917,0 33199,0 33145,0 37550,195 51797,0 42241,0 60264,0
30992,183 (жизнь) 28237,183 (время) 33567,0 29332,0 36965,0
Комментарий "ИНФОРКОМа".
Дорогие друзья! То, что игры имеющие хождение в стране, уже давно не являются первозданными, Вам хорошо известно. Сначала их курочат в Голландии, потом через ФРГ это поступает в Польшу, где дело поставлено не хуже, чем у нас, и только потом мутными ручейками программы поступают на расправу к нашим специалистам.
Вам это известно очень хорошо.
Кроме того, для различных POKES существует и разная технология их введения, что тоже немаловажно и не всегда правильно выполняется. Радикальных рецептов быть не может, кроме одного: учится, учится и учится, как завещал сэр Клайв Синклер, а в Англии, как Вы понимаете, звание сэра и титул лорда простому инженеру за одни красивые глаза не дают.
Осваивайте машинный код, изучайте опыт и приемы тех, кто это уже освоил, развивайте собственные приемы. В принципе, на страницах "ZX-РЕВЮ" мы даем достаточно информации, чтобы было с чего начать. Как Вы увидите, в этом году в "ZX-PEВЮ-92", будет немного больше материалов для тех, кто осваивает машинный код.
Только освоив технологию Вы почувствуете себя хозяином положения и сможете воспользоваться чьим-то POKE с полным знанием дела или адаптировать его под свою конкретную программу.