ZX Power #02
24 мая 1997
  Софт  

Рабочий стол - Как работать с программами: ZX-Turbo Disassembler.


Программное обеспечение Описание Отладчики

ZX Турбо Дизассемблер.

  Немного информации для тех,
кто заинтересовался этой штукой.

              Divide et impera
           (разделяй и властвуй)

     (C) Иноземцев Алексей.
      Special for ZX Power.
________________________________

   Итак, вы  уже  побаловались с
этим программным продуктом и те-
перь решили найти ответы на воп-
рос: зачем это нужно, и как этим
пользоваться?  Отлично,  это как
раз то место,в котором эти отве-
ты и находятся.
   Ответ  на вопрос,  для   чего
предназначена эта программа,  не
так и прост.  Сначала  попробуем
ответить на вопрос, для чего эта
программа не предназначена.  Эта
программа  не  может  отлаживать
ваши  творения, ломать чужие или
снимать защиту с UFO-2.   Это не
отладчик, не вьюер и даже не мо-
нитор, хотя очень на них похоже.
Это именно  дизассемблер,  един-
ственным  назначением   которого
является   получение  текста  на
языке   ассемблера,  максимально
приближенного к тому тексту, ко-
торый в начале веков, в далекой,
далекой Англии был написан и ас-
семблирован в игрушку  легендар-
ной  Ocean Software.  И  теперь,
разглядывая прошедшую огонь, во-
ду и волшебные кнопки,  програм-
му, вы  уже не будете ломать се-
бе голову, чем  же  порубить  на
куски сей многострадальный  про-
дукт интеллектуального    труда,
чтобы  затем  использовать   эти
запчасти в своих шедеврах.
   Этот дизассемблер  был  зачат
двумя монстрами отладки: MONS'ом
и STS'ом 4.0. Но  как  и  каждый
сын  он на порядок перерос своих
родителей в деле  получения  ис-
ходного текста, которым, по чис-
той  случайности,  забыл   поде-
литься  с  вами  ваш  незнакомый
друг-кодер.
  Те, кто пытался достать исход-
ник с помощью MONS'а или  STS'а,
воистину должны  были  запастись
терпением  индийского йога,  для
того  чтобы получить текст, так-
же полезный, как и полное собра-
ние сочинений В.И.Ленина на мон-
гольском языке.
   Теперь же, вы можете получить
текст,  пусть не  100%-но  такой
же, как у  автора  (комментарии,
увы, не  восстанавливаются)  но,
тем не менее,  который  позволит
вам как угодно  переписать,  до-
полнить,  урезать  разобрать  по
косточкам  (хрящам,   сухожилиям
и.. см. "Атлас анатомии")  любую
программу отечественного или им-
портного  производства  (реклам-
ная пауза).
   Теперь как же  эти все чудеса
сотворить.  Надеемся   не   надо
обьяснять как запустить сие  чу-
до техники  (для тех, кому надо,
сообщаем: наберите в TR-DOS  RUN
"ZXD" и.. о чудо!  Оно  закрути-
лось!!!)  Посему  сразу  престу-
паем к описанию программы.
   После запуска  (см. выше)  вы
узрите приблизительно такую кар-
тинку: сверху  полоса  меню,  со
всякими словами, а внизу  полоса
подсказок,  которая в данный мо-
мент подсказывает  вам  название
программы. В середине  находится
рабочее поле (Desktop по ихнему)
на котором  и  будет происходить
все самое интересное, но  сейчас
оно закрашено приятным  серо-бу-
ро-малиновым цветом,  что  озна-
чает, что  никакая программа по-
ка не загружена  в  рабочую  об-
ласть.
   Поразглядываем  теперь внима-
тельнее слова в полосе меню.  Их
там четыре штуки: FILE  (файл, а
не  филе),    VIEW    (глазеть),
DISASSM  (о..!  майн  готт!!)  и
OPTIONS (непонятно  что).  Заме-
тим, что одна  из  букв  в  этих
словах выделена  красным  цветом
(именно красным, даже если крас-
ного там и  в помине нет, напри-
мер: все слово написано синим, а
первая буква фиолетовым, код си-
него 1, код фиолетового 3, вычи-
таем из большего  меньшее  полу-
чаем 2 - красный цвет! Дальтони-
ки могут проделывать  этот  рас-
чет каждый раз) так вот если на-
жать  на  такую  вот клавишу, то
получите интересный эффект:  вы-
падет кубик с еще  одной  кучкой
слов.
   Для FILE эти слова  будут та-
кими: 













  Load prog  -  грузануть  прог-
рамму, которую вы  собственно  и
собрались разделывать.  Наберите
ее имечко (фамилия всегда <C>) и
все  будет тип топ.
  Save work  -  если после  того
как вы отделили  коды от  данных
(см. пункт VIEW) вам,  возможно,
захотелось сохранить это  разде-
ление  на диске, чтобы в следую-
щий раз не  глядеть тупо на дев-
ственный  код, а продолжить (ис-
править) свой work, то  вам пря-
мая дорога в  этот  пункт  меню.
Введите имя (фамилия по-мужу бу-
дет <w>) и, вставив  в  дисковод
какой-нибудь  круглый    предмет
(желательно дискету) смело  жми-
те <ENTER>.
  Open work  -  если вы уже  че-
го-то наковыряли  и даже ухитри-
лись это самое сохранить на дис-
ке  перед тем как в вашем районе
вырубили свет, то этот пункт ме-
ню  позволит вам получить  назад
ваши   труды    праведные    для
дальнейшего поливания   их твор-
ческим  потом.  Имя  вводится  и
т.д. и т.п.. Но! файл с исходным
кодом обязан  присутствовать  на
диске и именно под  тем  именем,
которое было  у  него  на момент
сохранения вашего workа  (понят-
но, что его имя может  не совпа-
дать с именем workа, просто  ес-
ли вы сделаете  ему  Rename,  то
программа его никакими водолаза-
ми не отыщет).
  Catalogue  -  поглядеть,  чего
еще  не доели вирусы   на  вашей
дискете.   Вам  покажут  прибли-
зильно  тоже,  что  и  LIST    в
TR-DOSе, но это  все  это  можно
полистать      туда-сюда-обратно
(кнопки  на полосе  подсказок) и
посмотреть в десятиричной  (если
вы умеете считать только до  10)
или 16-ричной системе.
  Drive - самая приятная менюшка
для тех, у  кого один дисковод -
вам  никогда  не  придется  сюда
лазить. Для  остальных  приятная
возможность выбрать  флоппер ко-
торый меньше глючит (Всем прият-
но - кайф).
  Quit - если  вам  насто..доело
все это и  вам просто захотелось
поиграть в  UFO-2  (класс!),  ну
что ж поделать... Reset  конечно
проще,  однако  из  этой   опции
иногда удается выпасть  в Бейсик
откуда  потом можно   попытаться
вернуться (sorry,paradise lost).
   Покончив с филе.. с FILE идем
к следующему  пункту   Главного.
VIEW - тут все очень просто. Вы-
берите вид отображения  информа-
ции Code или Dump и... (Wellcome
to hell!!).








  Тут-то все и начинается. Но (с
горбачевским  акцентом) не надо,
товарищи,  отчаиваться.  Совмес-
тными усилиями  мы придем к кон-
сенсусу (апплодисменты). Если вы
загрузились file, в смысле филе,
то вы сей prog и увидите в зака-
заном виде  (Dump или Code). Те-
перь ваша задача правильно  раз-
метить  (расписать,  раскрасить)
этот prog по четырем типам  дан-
ных: byte,  word,  code,  space,
для чего  применяется такая шту-
ка  как БЛОК.  Сначала блок надо
отметить сначала  и с  конца той
области, которую надо преобразо-
вать к нужному типу  (сам  понял
че сказал?). Начало БЛОКа  отме-
чается кнопкой "q", а конец "a".
После того,  как  вы  проделаете
все  эти  операции  вам  покажут
(инверсией) свежевыделеный БЛОК,
а  в  правом верхнем  углу зами-
гает  слово  "block".  И   затем
кнопками 1,2,3,4  (только не все
сразу)  устанавливаете    нужный
тип. Без  БЛОКа жать их абсолют-
но бесполезно.  Определившись  с
типом блока, советуем снять БЛОК
клавишей "z" от греха  подальше,
дабы гуляющие по клавиатуре  та-
раканы случайно не испортили го-
ды  кропотливой работы.  Если вы
сразу не запомнили столько  кно-
пок то это  не страшно - нажмите
<EXT>  (для тех,  кто  не понял,
коробка конопок в  конце  файла)
вывалится менюха со всеми клави-
шами. Если  у вас какая-то кноп-
ка дребезжит, заедает или ее ам-
путировали в детстве, то курсор-
ными клавишами выберите чего на-
до и давите <ENTER> - эффект бу-
дет тот-же.
   Теперь подробнее о типах дан-
ных:
  byte  -  просто  байт  данных,
в  тексте   будет  стоять  после
DEFB. Если он попадает в  диапа-
зон #20..#7f то будет заменен на
соотв. символ (sorry, других ва-
риантов нет). На дампе выделяет-
ся белым цветом.
  word  -  слово-метка (если по-
падает в программу)  или  просто
слово данных  (если попадает   в
другое  место) будет стоять пос-
ле DEFW и  на  дампе  выделяется
желтым цветом.
  code  -  просто  код,   ничего
больше, голубой цвет.
  space  -  если  вам  не  важно
что именно лежит здесь, главное,
чтобы   оно занимало  место, это
тип как раз то, что нужно.  Если
там 6 симфония Баха  для биппера
с оркестром, не  волнуйтесь  она
сохранится в отдельном файле. На
экране   этот  тип  отображается
как  DEFS мmm, где mmm - это  не
АО"МММ", а количество байт кото-
рые вы  ухитрились  запихнуть  в
эту строчку. В  текстовом  файле
эта строчка будет выглядеть  как
insert "nnmmm", где nn  (бес)по-
рядковый  номер insertа, а mmm -
длина угадайте чего.   Если   вы
смотрите на CODE,то увидите жал-
кую, намазанную зеленкой, строч-
ку, но  переключившись  на  DUMP
увидите  обширное, успокаивающее
глаза, зеленое поле.
  Как же угадать  какой байт ка-
ким цветом красить? К  сожалению
готовых рецептов  не  дает  даже
"Книга о вкусной и  здоровой пи-
ще"  Но, к  счастью,  есть  нес-
колько  полезных кнопочек, нажи-
мать которые мы сейчас научимся:
  r  -  (не путать  с  R)  самая
полезная кнопка.  Она  позволяет
найти первого, кто указывает  на
данную строчку (т.е. ту на кото-
рую положили курсором) если  та-
кой товарищ найдется  то вам его
покажут, если нет - вы  услышите
длинный гудок  и  останетесь  на
месте.
  R - (не путать  с  r)  находит
следующего, кто указывал  на  ту
строчку.
  j - если в данной строке  есть
метка, то вы к ней и перейдете,а
если нет то испытаете  на  проч-
ность свои барабанные перепонки.
  l  -  если  в  данной   строке
есть метка, но вы  хотите  чтобы
ее не стало, например:
   #7ffa 01fd7f ld bc,l7ffd
   #7ffd ed79 out (c),a
 Ежу понятно, что 7ffd это адрес
порта  конфигурации  ZX128, а не
метка команды out.Из этой ситуа-
ции есть только два выхода: либо
подвести  курсор к строке  и на-
жать l, либо ковырять только  те
progи в которых делается  только
out (#fd),a (ау, скорпионщики!).
  m  - если в данной строке  нет
метки, а  переехать  куда-нибудь
хочется -  жмите  эту  кнопку  и
вводите адрес  станции  назначе-
ния. Перед 16-ричным числом ста-
вится забор (#), а  десятиричное
покатит и так.
  i - (не путать с I) если у вас
голубым цветом остались покраше-
ны лишь отдельные байты пора за-
даться вопросом "Как так - на 30
килобайт программы  200 байт ко-
да?". Жмите эту кнопку и вы сра-
зу узнаете где делается CALL/JP/
JR/DJNZ  в середину, как вам ка-
жется, какой-нибудь порнокартин-
ки.  Смотрите  внимательно,  ис-
правляйте. Если же все так и бы-
ло задумано, то жмите
  I  -  (не путать с i)  следую-
щий такой CALL/JP и так далее.
  b  -  и, наконец, если   после
всех этих утомительных путешест-
вий   вам  захотелось  вернуться
назад  (I'll  be  back)  -  пра-
вильно, но только на один шаг.
   Остальные кнопки  понажимаете
сами,  ничего  особо интересного
они  не  делают,  кроме  пожалуй
<GRAF> которая в DUMPе перекиды-
вает курсор с HEXа на TEXT и об-
ратно.
   Теперь, собственно, то,  ради
чего  мы все здесь и  собрались.
Следующий   пункт   Главного   -
DISASSM.  В  этом подменю  всего
четыре пункта, так что  мы  сей-
час их по-быстренькому  и  дока-
наем. Первый пункт:










  Build  labels  -  вообще  сюда
попал по ошибке. Обычно с него и
надо начинать  работу, но ничего
не  поделаешь - торчит он именно
здесь. Ну чтож, выберем его. Ми-
нуты две компьютер будет показы-
вать вам, как  он  быстро  умеет
считать до ..надцати тысяч,а по-
том адреса,на которые есть пере-
ходы, обращения  и т.п.  (словом
будущие метки) засветятся как
синяки на роже боксера, помогая
вам разобраться что к чему.
  Clear labels  -  если  вам ос-
точертела эта иллюминация, пожа-
луйста - все  метки   быстренько
потухнут (а вот зажечь их обрат-
но так быстренько не получится).
  Disassm all  -  вот он  Момент
Истины, Минута Озарения, Час  X.
После трудов  праведных  да воз-
дастся нам по делам нашим. Помо-
лившись  и перекрестившись (сот-
ворив намаз, воспев  Кришну  или
на худой конец трижды плюнув че-
рез плечо) быстренько вводим имя
будущего текста (7 букв по гори-
зонтали). Компьютер еще раз сде-
лает  инвентаризацию всем меткам
и затем  начнет великое таинство
записи текста на диск. Но не то-
ропитесь   уходить  за  пивом, в
сортир или еще куда. Запись тек-
ста 40ка килобайтной игрушки за-
нимает меньше  минуты (в турбе).
Дождавшись  конца  можете  смело
выходить  (эй, а work кто списы-
вать будет?),  грузить ассемблер
ZXASM 2.4 и смотреть почему  это
все  не  работает.  Если  файлов
текста получилось больше одного,
то создается main-файл  в  кото-
ром кроме  includов  ничего  нет
(загадка для любителей математи-
ки: почему не  может  быть  двух
текстовых файлов?). Хотя  дизас-
семблер написан в ZXASMе 3.0, он
поддерживает только формат  тек-
ста ZXASM 2.xx, sorry сей недос-
таток  будет исправлен  в первую
очередь. Тем, кто  любит  ломать
глаза  в TASMе/MASMе  ничем  по-
мочь не можем  -  обращайтесь  к
окулисту.  (хм.. Идя  на  встре-
чу  пожеланиям  трудящихся, воз-
можно  будет  сделана  поддержка
TASMа 2.0).
  Disassm blk  -  если  вам пон-
равился какой-то кусочек кода, а
на остальную лабуду вам начхать,
отметьте БЛОКом тот скроллер,ко-
торый, на ваш вкус, лучше всех и
спокойно дизассемблите его в от-
дельный файл.  Без  БЛОКа  такой
номер не проходит.
   И вот последний пункт Главно-
го - Options. Зачем  он нужен  -
непонятно. Скорее  всего  он на-
фиг никому  не нужен.  Просто  у
всех есть, а мы че хуже?










   Ну раз он тут  торчит, ладно,
опишем и его. Первая опция:
  New start  -  если вы  выдрали
код неизвестно откуда  и  вам  в
облом  было   доктором  вставить
правильный стартовый  адрес, мо-
жете вставить его сейчас.
  Sound  -  вообще-то   никакого
soundа  в программе нет, так па-
ровозные гудки и все. Но если  у
кого будет желание  послушать по
ходу дела любимый музон -  пожа-
луйста,  присылайте  ваши ST, PT
или  MOD файлы. А пока вы можете
выбрать устройство  которое  бу-
дет  для вас  гудеть  и щелкать.
Это может быть:
  Beeper - звенит  тихо и слегка
подтормаживает, поэтому предназ-
начен для тех, кто лишен счастья
слушать
  AY-Chip  -  классный  рев  при
минимуме  съедаемого   машинного
времени. Стоит по-умолчанию.
  None  -  если  ваши бетховенс-
кие уши категорически не перено-
сят ничего, кроме тишины, возми-
те побольше ваты и скорее сюда.
   Следующим номером нашей прог-
раммы будет:
  Colours  - те, кому  наплевать
на цвета в программе, могут вык-
лючить монитор на  пару минут, а
для остальных собщаем, что изме-
нить цвета вы сможете  только  в
следующей версии, о чем  вы  еще
раз сможете прочесть в этом пун-
кте меню.
  И наконец (фу-у..)
  About  -  ..... (ну че,  about
он и в Африке about).
   Ну вот и все, что  вам  нужно
для работы Рафаэли Секко и  Оли-
веры  Твинсы наших дней. Надеюсь
Exolon 2 и Cybernoid 3 не заста-
вят себя долго ждать.
   С надеждой в душе и шлакобло-
ком на шее.
                  Иноземцев А.С.
Зугрэс-2, кремль
10.11.1996 23:57
________________________________

          Апендицит A.
       Приветы и прочее.

  Особый привет и большую благо-
дарность хочу выразить  Марущен-
ко Вите за моральную поддержку и
бесполезные советы. (Витек,hi!).
 Донецк:
   К.Афендиков    и     В.Рубцов
(ZXASM-3 классная штука,thanks),
ALOS и др.
 Харьков:
   Cobra, James  Advent, В.М.Г.,
Max Iwamoto и др.
 Зугрэс:
   Витек и его компания.
 Харцызск:
   OV (thanks за music), Ваня  &
Дизя.
          Апендицит B.
   Гарантийные обязательства.

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

343710 г.Зугрэс-2, Донецкой обл.
 ул. 60 лет Октября, д.6а, кв.41
   Иноземцеву Алексею Сергеевичу

   Ну, а если  в вашем  принтере
кончились иголки, то звоните  по
телефону:
                 (06257) 4-31-88
                 с 9:30 до 17:00
                   в рабочие дни
________________________________




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

Железо - Микропроцессоры Zilog: Z80, 80,Z8000,Z80000.

Железо - Модем: мифы и реальность.

Железо - Об AY-mouse (вопросы и ответы).

Железо - Последовательный порт -VCOM- для Спектрума.

Железо - Расширенный экран.

Игромания - Описание игры Ghost Busters 2.

Игромания - Описание игры Satan 2.

Игромания - Описание игры Zombi.

Интервью - VIC (X-Project) - как я начинал?

Интервью - Интервью с Joker'ом (Mafia).

К нашим читателям - "Время перемен"

Ликбез - Борьба контроллеров или о том, как я ломал 800К дискеты.

Ликбез - Восстановление программ (О причинах восстановления, характе- ристика мультифейсного взлома, типы мультифейсных взломов, восстановление методом поиска старого загрузчика).

Ликбез - Структура MS-DOS диска.

Обозрение - Gateway выпускает остатки Amiga.

Обозрение - O компьютере "Silicon Graphics" (продолжение).

От авторов - описание оболочки, приветствия и благодарности, адреса и контакты.

Отдохнем - 60 американских анекдотов.

Отдохнем - Бессознанка в армии.

Отдохнем - Кремлевский трабл.

Отдохнем - Протокол заседания по выборам главврача в психбольнице N15.

Первый блин - Описание программы RAM-TEST v1.0.

Первый блин - Путь к известности...

Перспектива - Анонс STS v6.0.

Перспектива - Новелла к игре WORDS.

Перспектива - О игре 3D Killer (демо версия - Doommania).

Перспектива - Предисловие к игре СТАЛКЕР.

Рабочий стол - Как работать с программами: Cache File Manager 512k.

Рабочий стол - Как работать с программами: Corrector v2.0.

Рабочий стол - Как работать с программами: Melon Terminal.

Рабочий стол - Как работать с программами: Symed v1.1

Рабочий стол - Как работать с программами: ZX-Turbo Disassembler.

Разное - Занимательная Вирусология.

Разное - Новости от Progress, Dream Team, Rush, Phantasy, Copper Feet и т.д.

Разное - О ZX сетях и не только...

Разное - Письмоносец - обзор писем читателей.

Реклама - Реклама и объявления.

Фантастика - Винни Пух - 10 лет спустя.

Фантастика - Г.Гарисон (продолжение, часть 4-6).

Фантастика - Рассказ Е.Нестеренко "Корона и кольцо" (часть 1)

Фантастика - Фантастический рассказ Театр.


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

Похожие статьи:
Система - Доработка ZX-DISASSEMBLER.
Система - описание крутых системных программ: STS Monitor 6.2
Лаборатория - Ошибка в STS v6.2 и ее исправление.

В этот день...   16 июля