ZX Format #05
11 декабря 1996
  Игры  

Программистам - adventure: разумный подход к прохождению.

ADVENTURE: РАЗУМНЫЙ ПОДХОД К ПРОХОЖДЕНИЮ

music by DNK             
(С) 1996 Alex ASP
_________________________________________

1. Введение

   Для начала, наверное, необходимо разъ-
яснить,  о  чем  вообще пойдет речь, дабы
любители диззеобразных игр не закидали бы
автора  тухлыми  яйцами, а сразу же могли
вернуться к столь привычным для них соро-
ка  восьми  предметам народного потребле-
ния  или  что там у них на подходе. Итак,
если, загрузив игру, Вы увидели кучу тек-
ста  (с корявыми картинками), да и еще от
Вас требуют что-то вводить с клавы на ан-
глицком,  как правило, лангуаге после по-
хабных  'What  now?', '>', '*' и им подо-
бных,  то  смело  можете жать Super Magic
Button  или  'комбинацию из трех пальцев'
(Ctrl+Alt+Del),  что, в сущности, одно  и
то  же,  наконец-то  понимая, что из себя
представляет Adventure-игрушка.
   Теперь можно поговорить и о спеллинге.
Всвязи с тем, что автор - человек доволь-
но  ленивый, и его просто ломает переклю-
чаться  без особой надобности на вышеупо-
мянутый англицкий посредством хлопания по
двум  клавишам,  то он просто введет рус-
ский эквивалент слова Adventure. На самом
деле, это слово звучит так: "адвенчер", а
в переводе означает "приключение", но го-
ворить "приключенческая игра" влом, похо-
же, не только автору, но и всем, а термин
"адвенчер", похоже, никого не прикалывал.
И тут добрый "Инфорком" предложил: "А да-
вайте-ка  обзовем  все  это  дело словцом
"адвентюра"!  Ведь  крутое словцо-то, а?"
И именно с той поры и начали все, кому не
лень, именовать игрушки данного рода этим
корявым  словом.  Что ж, раз уж так пове-
лось,  то и автор будет употреблять этого
уродца в качестве эквивалента.
   Теперь  немного поговорим о том, какие
бывают адвентюры, ибо адвентюра адвентюре
рознь.  Так вот, поделим мы их на две ча-
сти:  написанные  при помощи всевозможных
неудобных, но все-таки работающих пакетов
и  написанные  без  оных. В свою очередь,
пакетные  делятся  по наименованиям паке-
тов,  в коих они были сотворены, а безпа-
кетные  делятся по языку написания. Среди
пакетов  наиболее распространены (отделя-
ются  точкой с запятой) Adventure Builder
System  (ABS и ее русифицированная произ-
водная); Graphic Adventure Creator (он же
GAC);  Quill,  Patch,  Illustrator (QPI).
Среди беспакетных распространены написан-
ные  в BASIC'e (как с использованием маш-
кода,  так и без оного (сюда же можно от-
нести  и ABS)), на других языках высокого
(хм?)  уровня,  например,  Laser  BASIC'e
(честно  признаюсь, что видел только одну
такую  вещицу),  а также на языке низкого
уровня, т.е. Assembler'e (или в машкоде -
кому  что больше нравится). Интересно от-
метить  то,  что  качество игры, ее слож-
ность  и  интересность (простите) обратно
пропорциональны  уровню языка, на котором
она  написана. Есть еще несколько параме-
тров,  по которым можно поделить адвентю-
ры:  с графикой/без нее, требующей не ме-
нее  128К/не  имеющей данных претензий, с
сопровой музыкой/вообще немой, а также по
годам  выпуска  или производителям, но не
это будет главным.
   И именно в этот момент настало то вре-
мя, когда можно объяснить уставшему чита-
телю,  о чем же дальше пойдет повествова-
ние. А пойдет речь о том, как помочь себе
самому, если адвентюра упирается и не хо-
чет  раскалываться.  Чем-то этот материал
поможет  русификаторам (сам автор в такие
игры  не  играет,  так как придерживается
принципа,  что если что-то хорошо, то его
всегда можно сделать еще хуже, а желающих
это  сделать  всегда  с лихвой найдется).
   И, наконец, последний абзац. Автор бу-
дет  рад видеть какие-либо отклики на ра-
боту,  замечания, исправления, доп. инфо-
рмацию  и проч. Для связи можно использо-
вать  журнал ZX-FORMAT (адрес можно найти
где-нибудь внутри журнала), а также можно
выйти  (пешком,  наезжать лучше не надо -
не  конструктивно это) лично на автора по
E-mail:

SAB94174@D1.IFMO.RU

P.S. Пару слов о теневом мониторе, вшитом
в Scorp.  Автору интересно, по каким при-
чинам  создатели  Scorp'a отрубили вход в
монитор  из BASIC'a и TR-DOS. Возможно, у
автора  устаревшая прошивка (прошивка ав-
тора  или  ПЗУ  - не известно). Некоторым
читателям, по-видимому, прийдется пользо-
ваться теневым монитором, и столкнуться с
такой  же проблемой, а посему автор осме-
лился  предложить  для них нижеизложенный
способ  входа из BASIC'a в монитор. В ко-
мандной строке набирается:

POKE 16384,195: POKE 16385,0: POKE 16386,
64:  POKE 16387,201:  RANDOMIZE USR 16384

или в переводе

16384 JP 16384
16387 RET

Для тех, кто не понял, объясняю: програм-
ма  запускается с адреса 16384 и выполня-
ет команду, предписывающую перейти по ад-
ресу 16384 и выполнить команду, находящу-
юся  там (а там находится команда перехо-
да  по  адресу 16384, где  содержится ко-
манда  перехода...).  После  запуска этой
программки самое время  нажать Magic But-
ton  (не путать с SMB, о которой было на-
писано  выше)  и  с радостью вывалиться в
теневой монитор. Зачем же по адресу 16387
стоит  команда  возврата,  спросите Вы. А
затем,  чтобы,  при необходимости, суметь
вновь вывалиться в родимый BASIC не пере-
капывая  кучу  машкода  в поисках команды
возврата.  Делается  это  путем набивания
двух строк в командной строке монитора:

PC=16387
EXIT

и  нажатия кнопки '0', означающей возврат
в программу. Может быть, это все и извра-
щение,  но  является  одним  из возможных
подходов к решению проблемы. На сем месте
разрешите  откланяться, и, если автора не
прибьют в конец обнаглевшие гоблины, то в
следующий раз и начнется серьезный разго-
вор  об адвентюрах, а в частности - об их
словарном запасе.

 ZF>  Пара  слов по поводу более простого
способа вызова теневика:
POKE   16384,243:  POKE  16385,118:  POKE
16386,251:  POKE 16387,201: RANDOMIZE USR
16384
что в свою очередь значит:

DI
HALT
EI
RET

И  вам  не понадобиться переустанавливать
PC,  a  для выхода из теневика достаточно
просто набрать J.

2. Словарь.

   Настала  пора  поговорить  об языковых
проблемах.  Можно  долго  спорить,  какой
язык  лучше - русский или английский. Ав-
тор  придерживается  того мнения, что лю-
бое  произведение  лучше  всего  читать в
оригинале, поэтому про всевозможные руси-
фикации  может лишь заметить, мол, третий
сорт - не брак. Однако и в русской версии
игры,  и  в английской очень часто встает
вопрос:  а что же программа сможет понять
из того, что ей скажут? И вообще, что ну-
жно  сказать программе, чтобы пройти игру
дальше?  Одного  знания языка быват мало.
Так, например, несколько лет назад, играя
в  игру  Robin  of Sherlock, я был весьма
удивлен  тем,  что, во-первых, нужно было
звонить  по телефону Лестрейду, про суще-
ствование   которого  создатели  позабыли
оповестить  играющих,  а, во-вторых, тем,
что  для того, чтобы осуществить вышеука-
занное действие, нужна была команда Redi-
al,  что означает перезвонить, а не Dial,
означающая просто позвонить. Для устране-
ния подобных обломов и полезно просматри-
вать словарь игры.
   Существует  несколько  форматов хране-
ния  словарей. Далее по тексту будут опи-
саны  некоторые  из  них (те, которые ис-
пользовались  в игрушах, валявшихся у ав-
тора  где-то в районе коробки с дисками).
Совсем  в конце будут приведены небольшие
программки,  которые,  ковыряясь в кишках
игрушки,  вытаскивают  на  свет то, о чем
идет  речь вот уже порядка полутора кило-
байтов.  Что ж, настала пора войти в этот
Ад злобной богини Вентюры.

2.1 Пакетные игры.

2.1.1 ABS

   А  что  Вы, собственно говоря, ожидали
здесь  увидеть? Это весьма простой пакет,
где  для  ввода  данных (словаря и пр.) и
для  самой  игры  используется BASIC, чем
обуславливается неудобство написания, ма-
лый размер (в локациях, памяти же она за-
нимает  отвратительно много), тормозность
при  получении не только машкодового бло-
ка,  но  и  при самой игре, и куча других
нареканий.  Этот пакет пару лет назад ис-
пользовали русские программисты, наводняя
страну продукцией весьма сомнительного (в
большинстве  своем)  качества, за что ог-
ромное  СПАСИБО нужно сказать все тому же
Инфоркому, который умудрился откопать это
чудо со свалки, русифицировал его и выпу-
стил  в  свет.  Сам  пакет  можно найти в
ZX-Ревю (на мой взгляд "ревью" бы звучало
куда  лучше  и  больше бы соответствовало
слову Review) NN 9-12 1993 года и в Spec-
trofon  N 1 (данные приведены из памяти).
   Вернемся  к нашим баранам (это я не об
Инфоркоме).  В  пакете  применяется самый
простой формат хранения словаря, описание
которого сейчас последует.

Формат N 1.

   Каждое слово словаря начинается с пер-
вых,  как  правило,  четырех  букв слова.
Вместо  четырех может быть и любое другое
число  букв,  например,  пять или три, но
обычно  используют  именно  четыре. Затем
следует  номер этого слова в словаре, по-
сле чего - первые четыре буквы следующего
слова  и т.д. Если длина слова меньше не-
обходимого  для  распознавания числа букв
(в  данном  случае меньше четырех), а это
бывает  при использовании сокращений типа
E  вместо EAST, то оставшееся место доби-
вается  пробелами (будет E и три пробела)
или нулями.

   В  играх  словарь начинается с адреса,
записанного  в  ячейках 64860/1. Встреча-
лась, правда, игрушка Last Rider, которая
базировалась на ABS, но сам пакет был до-
работан, благодаря чему программа воспри-
нимала  не  два, а три слова. В этой игре
начало   словаря   хранилось   в  ячейках
65297/8. Перед поиском словаря рекоменду-
ется переключиться на шрифт, используемый
в  данной программе, особенно при просма-
тривании словаря русских игрушек.

2.1.2 QPI.

   Этот  пакет будет посерьезнее предыду-
щего.  Сам  пакет автору увидеть не дове-
лось, поэтому о том, что этот пакет пред-
ставляет,  автор может судить лишь по иг-
рушкам, написанным в этом пакете. Хочется
заметить,  что большинство пакетных игру-
шек,  валявшихся на дисках, были написаны
именно в QPI, среди них изрядное количес-
тво  занимают пародии на другие известные
адвентюрные  игры.  В пакете используется
следующий формат хранения словаря:

Формат N 2.

   Сей  формат  являет  собой модификацию
предыдущего формата, заключающуюся в том,
что  сами слова закодированы. При кодиро-
вании использовалась команда CPL, которая
инвертирует  все  биты аккумулятора, т.е.
выполняет  то  же  самое,  что  и команда
XOR #FF.

   Существует  два адреса, где могут хра-
ниться  данные  о начале словаря. В самых
старых  игрушках (Hotel 'Africa Gardens';
Hampstead)   они   находятся   в  ячейках
27937/8,  а  в  более  новых  - в ячейках
27557/8.

2.1.3 GAC

   Этот  пакет  довольно  хорошо известен
нашему  народу,  как и вышеопущенный ABS.
Информация   о  нем  может  быть  найдена
где-то  в  районе Cпектрофона N 10, автор
же  работал с кассетной версией, откопан-
ной там же, где и ABS. Не смотря на иден-
тичное  место обнаружения, он вселяет го-
раздо больше оптимизьма в светлое будущее
пакетного адвентюропроизводизьма, чем его
менее удачливый коллега. Наверное, он на-
ходится  на  одной ступени с QPI. Словарь
же хранится следующим образом:

Формат N 3.

   Сначала  идет  слово  полностью. Потом
это  слово  заканчивается  и вслед за ним
идет  его номер. После этого все повторя-
ется. Кодировка отсутствует.

   Эти  данные были получены при работе с
прилагающимся  примером игры и могут быть
совершенно другими в других игрушках, ко-
их автору видеть до сей поры еще не дове-
лось, окромя Apollo, но о ней нужно вести
разговор  особый. Не смотря на вышеупомя-
нутый  формат  словаря, программа положи-
тельно  реагирует  на  сокращения из трех
букв  (как не стыдно! Не о том думаете!).

2.2 Беспакетные игры.

   Настала пора рассмотреть продукцию тех
авторов,  которые сказали:"Мы пойдем дру-
гим  путем".  Сказано - сделано, и вскоре
появляются  замечательные  игрушки, пере-
числять  которые автор не будет (кто ж за
это  ему будет благодарен?), а лучше зай-
мется он описанием форматов хранения сло-
варей в этих игрушках, отсортировав их по
производителям.

2.2.1 Adventure Soft

   Здесь  используется  уже известный нам
Формат  N  1  (Rebel Planet). Комментарии
излишни.

2.2.2 Adventure International

   Словарь  в  игрушках  этой фирмы имеет
пару  различных  форматов хранения, но, к
счастью, он не закодирован.

Формат N 4.

   Сначала  идет идентификатор слова, за-
нимающий  один  байт. Если он равен 0, то
слово,  которое  за  ним последует, будет
новым  словом,  а если он равен 42 (#2А),
то  следующее  за ним слово будет синони-
мом предыдущего. Далее следуют первые че-
тыре буквы слова, после чего все повторя-
ется.

   Такой  формат кодирования применялся в
старых  игрушках (Hulk). Осознав, видимо,
что  в результате такой кодировки словаря
совершенно  неоправданно расходуется лиш-
ний  байт  на  каждое слово, программисты
побросали свои любимые игрушки, стали но-
чами  не спать и, наконец, придумали, как
уберечь  пропадавшую  раньше сотню-другую
байт. Так, судя по всему, и появился сле-
дуюущий формат.

Формат N 5.

   Вначале  идут первые четыре буквы сло-
ва.  Если первая буква - прописная латин-
ская,  то слово новое, а если она заглав-
ная  латинская, то это слово является си-
нонимом  предыдущего. Три оставшиеся бук-
вы  - заглавные. Следом идут четыре буквы
следующего  слова,  подчиняясь  этому  же
правилу и т.д.

   Такой  формат  хранения словаря приме-
нялся  в  более  поздних  играх (Robin of
Sherwood,  Seas  of Blood). Словарь в них
начинается  со следующей строки символов:
"aUTOgO". Если надумаете сами искать сло-
варь,  то  можно рекомендовать искать его
начало по этой строке.

2.2.3 Mastertronic.

   Долгое  время  автор  считал,  что эта
фирма  производит только игрушки, в кото-
рые  заставляют  играть  приговоренных  к
высшей  мере  наказания  (хорошо по этому
поводу  высказались в Robin of Sherlock).
Но  тут попалась(лся/лось) на глаза ZZZZ,
и  именно эта игрушка опровергла вышеупо-
мянутое представление об этой фирме. Фор-
мат хранения словаря - N 5.

Формат N 6.

   Чем-то этот формат напоминает предыду-
щий.  Вначале три заглавные буквы первого
слова,  потом три заглавные буквы второго
и т.д.

2.2.4 Ocean.

   Весьма  уважаемая  автором фирма, соз-
давшая множество неплохих Action игрушек,
приложила  руку и к адвентюрам, и вышло у
нее это совсем неплохо. Для хранения сло-
варя  был  использован Формат N 1 с тремя
первыми    буквами   слова   (Neverending
Story).

2.2.5 Abstract Concepts.

   Концепции  этой  фирмы  и вправду абс-
трактные,  эдакий изврат. Если посмотреть
на игрушку невооруженным взглядом, а рас-
сматривался   Mindfighter,  то  создается
впечатление наворотности. На самом же де-
ле  все не так сложно, как могло бы быть,
а формат хранения словаря, на мой взгляд,
страдает некоторой избыточностью.

Формат N 7.

   Словарь  закодирован как и его коллега
под  номером 2, т.е. используется команда
CPL.  С самого начала обнаруживаются пер-
вые  пять букв слова. Следом за ними идет
байт,  значение  которого  означает номер
слова  в группе. После него идет еще один
байт,  означающий номер группы, к которой
принадлежит данное слово. При длине слова
менее пяти байт, оставшееся место забива-
ется  пробелами, что в закодированном ва-
рианте  соответствует числу 233. Синонимы
имеют  одинаковые порядковые номера и но-
мера  групп. Группы имеют следующие номе-
ра:

0. Глаголы
1. Не используется
2. Существительные
3. Прилагательные
4. Наречия, предлоги и прочая нечисть
5. Союзы
6. Местоимения

   Про  группы  4, 5 и 6 сказать что-либо
сложно,  но,  вроде  бы, приемущественное
разграничение именно такое.

   Словарь  начинался  с  адреса  38433 в
файлах MindFX.A, где X={0..3}.

2.2.6 Level 9.

   Похоже, девизом этой фирмы было выска-
зывание  приблизительно следующего содер-
жания:  "Никогда  не  делай проще то, что
можно  и  нужно сделать гораздо труднее".
Именно  этого  принципа фирма придержива-
лась  во  всех  своих программах. О самой
фирме   писалось   где-то   в  неизменном
ZX-Ревю,  если  не ошибаюсь, 94 года. Без
приличного  знания  английского  языка  в
этих  игрушках делать практически нечего,
а без приличного знания Assembler'а - не-
чего  в  них  и ковыряться. В большинстве
случаев  и то, и другое становится просто
бессмысленной  тратой  времени при отсут-
ствии  наличия или при наличии отсутствия
вышеоговоренных  знаний.  Зато при знании
первого,  а еще лучше и второго, гаранти-
ровано  изрядное  количество головодроби-
тельных,  а не просто головоломных задач.
Впрочем,  это  -  лирическое отступление.
Настала  пора  поговорить  и  о  словаре.
Здесь  подстерегают  несколько  форматов,
поэтому  рассмотрим  их  согласно устано-
вленному  регламенту.  Для разминки фирма
использовала   третий   формат   (Emerald
Isle). В программе Red Moon был использо-
ван немного другой формат, а имено вышео-
писанный Формат N 3. И вот мы подобрались
к  самому  навороченному формату хранения
данных из всех виденных ранее. Это извра-
щение  было откопано в программе The Worm
in Paradise.

Формат N 8.

   Признаюсь  честно, я так до конца и не
разобрался,  что и как там происходит, то
есть  разобрался, но как это перевести во
что  нибудь простое на BASIC'е или Assem-
bler'е  мне до сих пор непонятно. Поэтому
не могу  я его конкретно описать здесь, а,
чтобы  не  мучить вас своими 'вроде как',
приведу  программку, позволяющую счастли-
вым  владельцам теневого монитора просмо-
треть хоть как-то этот словарь.

2.3 Что делать?...

   Написал  я всю эту лабуду и подумал, а
кому  все  это, собственно говоря, нужно?
Посидел,  подумал  и  хотел  уж было весь
этот  текст  заксорить,  а дискетку после
него расформатировать, но в последний мо-
мент,  когда  рука  уже зависла над самой
главной  кнопкой, пришла мысль о том, что
вдруг  кто-нибудь  мне  этого не простит.
Вот так и остались вышеизложенные мысли в
этой статье. На самом же деле мораль это-
го  текста  вовсе  не в них, а вот в чем.
Предположим  такую  ситуацию:  неизвестно
откуда  среди порядком поднадоевших ходи-
лок-собиралок,  мочилок и прочих остаточ-
ных  продуктов  безотходного производства
появляется  одна-единственная  сиротинуш-
ка  - адвентюрка. Решив, что заняться со-
всем нечем, Вы бросаетесь в бой и, пройдя
около  половины  игрушки,  осознаете, что
дальше-то  идут  сплошные  обломы. Что же
делать?  Предлагаются  следующие варианты
(нужное подчеркнуть):
а) Расформатировать диск и забыть об этой
   адвентюре как о страшном сне.
б) Найти умного дядю, который либо произ-
   ведет вместо Вас действие а), либо Вам
   скажет, как ее пройти дальше.
в)  При  невозможности  выполнения первых
   двух  действий  прийдется  копать про-
   грамму самому.
Предположим  также,  что из предложенного
выбран  третий  пункт. Для начала следует
обратить  внимание  на файловую структуру
программы.  Если с первого взгляда броса-
ется  в  глаза  аномально  огромная длина
BASIC-файла,  то это или ABS'овское поро-
ждение,  или не менее страшное нечто, ло-
гика  которого  написана  в BASIC'e, либо
моноблоковый  загрузчик.  В  первых  двух
случаях рекомендуется просмотреть кодовые
блоки этих монстров каким-либо viewer'ом.
Если  там нет ничего похожего на словарь,
то  приготовтесь  к  поискам в BASIC'е. В
случае же с моноблоковым загрузчиком сто-
ит обматерить (про себя) тех буржуев, ко-
торым  жалко  лишнего полупустого сектора
на  диске,  а затем прийдется либо ломать
загрузчик  и  обломкам придавать вид фай-
лов,  если  просмотр каким-либо viewer'ом
дает  ровным счетом ничего, а ломка такая
требует  небольшого  знания  Assembler'a,
либо обзаводиться теневым монитором и ко-
паться  в  кишках  дальше. Кстати, прежде
чем  лезть  вовнутрь любой адвентюры, пе-
рвым делом посмотрите коды viewerом - это
сэкономит и время, и нервы.
   Обратите  внимание на фирму, произвед-
шую  Ваше подопытное животное и посмотри-
те  эту статейку - быть может Вам повезет
и  Вы найдете эту фирму (или пакет) среди
вышеописанных.  Ну а если Вам повезет еще
больше,  то формат, описанный здесь, сов-
падет с форматом в Вашей игре.
   При  наличии  теневого  монитора можно
слегка повеселиться. Бывают такие прогон-
щики,  которые  перекодируют  загружаемые
данные  сразу  после загрузки, что встре-
чается  довольно часто, либо во время за-
грузки, что встречается реже и, вроде бы,
только  на  ленте. В таком случае ждем до
тех пор, пока игрушка не начнет работать,
а затем с радостными воплями жмем любимый
Magic  Button и, если какой-нибудь извра-
щенец не придумал обломать Вас с этим де-
лом, заЩИТщая свой загрузчик с очередной
хромающей  ползукой,  полной  мегафуцков,
даете  команды mem начиная от 25000 с ша-
гом  1000.  Справа будет видно содержимое
ячеек  в  символьном виде. Двигаясь таким
макаром, Вы либо натолкнетесь на словарь,
а  может  быть и на текст сообщений, либо
прийдется лезть еще глубже.
   Ежели  Вам посчастливилось с пол-пинка
найти  словарь, то можно поздравить Вас с
удачей.  Остальным  же можно посочувство-
вать  и  предложить  провести проверку на
использование формата N 2 или N 7.
   Для  Формата  N  2  можно использовать
следующую программку:

10 FOR  N=256*PEEK  64861+PEEK  64860  TO
   64000 STEP 5: PRINT PEEK (N+4);TAB 4;:
   FOR  M=N  TO N+3: PRINT CHR$ (255-PEEK
   M);: NEXT M: PRINT: NEXT N

   Ну  а  если кто-то желает покопаться в
мозгах MindFighter'а, или посмотреть Фор-
мат N 7, рекомендуется следующее извраще-
ние:

10 FOR A=0 TO 6: PRINT '"Group ";A'': FOR
   N=38433  TO  65535  STEP  7:  IF  PEEK
   (N+6)=A THEN PRINT PEEK (N+5); TAB 7;:
   FOR  B=N  TO N+4: PRINT CHR$ (255-PEEK
   B);: NEXT B: PRINT
20 IF PEEK (N+7)=0 THEN GOTO 40
30 NEXT N
40 NEXT A

   Можно предположить существование неко-
его  формата, похожего на N 2 - использо-
вание кодировки по XOR #NN. В этом случае
можно  опять же пролистать всю память ни-
жеследующей  программкой,  смотря  на то,
что  появляется сугубо скептически (с ша-
гом  1000, как и в ситуации с теневым мо-
нитором):

10 LET   T=40000:  LET  A=1:  POKE T+3,A:
   INPUT  L:  FOR N=L TO 65535: POKE T+1,
   PEEK N: RANDOMIZE USR T: NEXT N

Здесь  Т  - адрес расположения процедурки
в  машкоде  (его  можно менять, но не за-
будьте  запоукать  машкод  именно туда, к
чему приравняли Т), А - код ксорирования,
а сама процедура выглядит следующим обра-
зом:

62, 0, 238, 0, 215, 201 или

T LD A, 0
  XOR 0
  RST #10
  RET

(Намеренно  не  привожу программок полно-
стью  написанных в машкоде дабы не отпуг-
нуть  юзеров  - для них же, родимых, ста-
раюсь, а то ищи их потом...)
   Набрав  все  это,  делайте  RUN. Далее
листайте  память. Ничего не дало - меняй-
те  А  и  снова  - RUN. Повторю, что этот
недоформат  -  мои  измышлизмы, сам я его
НИГДЕ не встречал, но вдруг?..
   А теперь будет приведена обещанная ко-
вырялка  для  Формата N 8. Для начала за-
грузите игрушку как положено (эту фразу я
увидел в одной инструкции к Art Studio, и
у  меня сразу же возник вопрос: а КАК по-
ложено?) . Когда  игра запустится и выве-
дет  Вам  первый  What now?, жмите MB. По
благополучному прибытию в теневой монитор
давайте команду mem #EAA0 и затем введите
следующую строку: .#CD, #C0,#FF. Переводя
на  нормальный  язык  - CALL #FFC0, где и
разместится наша программка. Дайте коман-
ду mem #FFC0 и введите следующие строчки:

.#E5, #21, #43, #E6, #7E, #FE, 0, #28, 6

.#CD, #3C, #F0, #23, #18, #F5, #3E, #20

.#CD, #3C, #F0, #E1, #C9

что в переводе означает:

   PUSH HL      ; Запоминаем HL
   LD HL, #E643 ; в  HL  - начало буфера,
                ; где хранится слово, вы-
                ; тащенное программой для
                ; сравнивания  с тем, что
                ; Вы  ввели  на What now?
L1 LD A, (HL)   ; В  Акк. - содержимое HL
   CP #0        ; Проверяем на конец сло-
                ; ва
   JR Z, L2     ; Если  конец  -  переход
                ; на L2
   CALL #F03C   ; Вызов подпрограммы  пе-
                ; чати символа
   INC HL       ; Увеличиваем    значение
                ; HL,   чтобы   прочитать
                ; следующую букву
   JR L1        ; И   все  делаем  заново
L2 LD A, #20    ; Суда  мы попадаем, если
                ; слово   закончилось.  В
                ; Акк.   -   код  пробела
   CALL #F03C   ; Печатаем  пробел, чтобы
                ; слова не сливались
   POP HL       ; Восстанавливаем HL
   RET          ; Возвращаемся в програм-
                ; му

   Теперь  выходим  из  монитора и вводим
какое-нибудь слово. В ответ наша програм-
мка напечатает те слова, с которыми осно-
вная программа проверяла введенное слово.
В  программе стоит хитрый анализатор, по-
этому  вам  прийдется  слегка поработать,
чтобы  просмотреть  весь словарные запас.
Возможны глюки со стороны программы печа-
ти. Но все же это лучше, чем ничего.

   здесь,  казалось бы, можно было поста-
вить  точку, но я скажу еще парочку слов.
Во-первых,  здесь рассмотрено не все мно-
гообразие  форматов  хранения словарей, а
лишь  только  то, что у меня валялось под
рукой.  Если  у кого-то что-то завалялось
из  неописанного  мной, и он не может ра-
зобраться  сам,  то не шлите мне мегафуц-
ки,  а лучше (если не влом) саму эту про-
граммку.  Глядишь, что-нибудь про это бе-
зобразие  и появитсяв следующем ZF. Може-
те  и  сами послать описание формата. Для
меня  -  халява, для Вас в этих двух слу-
чаях  -  персональный  тханкс прям здесь,
если  сами  халявить  не  будете. А я тем
временем  чем-нибудь да позанимаюсь . Так
что  ждите  того,  сам  не знаю чего да и
продолженьица  - на этот раз про хранение
текстов.  На  сей  весьма оптимистической
ноте  разрешите  закончить  наш разговор.
Если повезет, то еще увидимся.



Другие статьи номера:

Авторы журнала - ZX-Format No.5

От авторов - о пятом номере журнала.

Игрушки - 48 утюгов (част 4).

Игрушки - по пополочкам: Castle Master #1

Игрушки - новелла по игре Robin Of Sherlock.

Программистам - Basic для чайников - часть 5.

Программистам - искусственный интеллект в компьютерных играх.

Программистам - TR-DOS для программистов.

Программистам - описание и история создания MEM.

Программистам - обмен опытом: Об эффектах на бордюре и кое о чём ещё.

Программистам - обмен опытом: "Подсчет мозгов" - AUTOconfig v5.03.

Программистам - adventure: разумный подход к прохождению.

IS-DOS - пользователям: справочник по основным командам и утилитам базового комплекта IS-DOS.

IS-DOS - программистам: краткий курс программирования в среде IS-DOS.

IS-DOS - IS-NEWS - "Новости в мире IS-DOS".

IS-DOS - програмно-аппаратный комплекс поддержки IDE HDD для ZX Spectrum.

Железо - KAY: ZX Spectrum Ttransformer.

Железо - Технология это война.

Железо - General Sound.

Железо - XTR Modem.

Железо - Схемa KEMPSTON MOUSE.

Железо - Что делать, если мыша не правильного типа.

Железо - LPT COVOX и не только...

Премьера - описание программы Catalogue Master.

Премьера - описание программы Micro-editor. (MED)

Премьера - Text designer.

Интервью - интервью с разработчиком клона HOBBIT (2-я часть).

Отдохнём - словарь рекламы (С юмором, но не без здравого смысла!).

Отдохнём - Воспоминания о будущем.

Почта - Письма читателей.

Почта - реклама и обьявления.

Почта - уголок ламера (Детям до 16 лет читать категорически воспрещается).

Разное - перспективы: новая игра от Медноногова "Чёрный Ворон".

Разное - перспективы: Pink Floyd - новая операционная система для Спектрума.

Разное - перспективы: игра Экспансия.

Разное - Здесь был ТЫ.

Разное - Рецензия на игру Kings bounty II.

Разное - Конкурс на лучший уровень к игру Laser Squad продолжается. Новый конкурс на микро-демо.

Разное - анкета для читателей журнала.

Amiga - Крик души: Windows 95 и еще кое о чем.

Amiga - Amiga-клуб, вопросы и ответы.

Amiga - Проект PowerUp - следующее поколение Aмиг.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Контакты - адреса для связи.
Top Secret - темные делишки,кое каких людишек! S.O.I.-пpодает глючные веpсии игр... S.O.I. также очень активно мешает созданию сети SKY NET в Луганске.
Герои - Нужна ли ZX сцене игра "ГЕРОИ"?

В этот день...   25 мая