ZX Review #5-6
04 ноября 1997

Форум - Особенности ассемблера ZX ASM 3.0.

<b>Форум</b> - Особенности ассемблера ZX ASM 3.0.
(c) Иван Рощин, г.Москва, 1997

  Изучение и отладка @-файлов
       с помощью STS 5.1

  Известно,  что  монитор-отлад-
чик STS позволяет свободно  заг-
ружать и отлаживать @-файлы, за-
нимающие все  48  килобайт.  Это
делает STS незаменимым для  хак-
кера.
  Я предлагаю небольшое  усовер-
шенствование STS, смысл  которо-
го заключается в следующем: пос-
ле загрузки  @-файла  в  память,
указания некоторого параметра  и
нажатия комбинации клавиш "SS+U"
значения всех регистров  процес-
сора станут такими,  какими  они
были  в  момент  нажатия  кнопки
MAGIC. После этого можно, напри-
мер, продолжить  выполнение  ис-
следуемой программы в  пошаговом
режиме.
   Такая возможность  пригодится
вам не только  для  исследования
чужих программ, но и для  отлад-
ки своих собственных.  Допустим,
вы написали  программу, запусти-
ли ее, а она "зависла".  В таком
случае   можно   нажать   кнопку
"MAGIC", записать содержимое па-
мяти на диск, а потом  загрузить
полученный @-файл в STS и  выяс-
нить, в чем причина неправильной
работы программы.

   WARNING!  Все   нижесказанное
относится ТОЛЬКО к STS 5.1!

   Для  преобразования  STS  5.1
необходимо выполнить следующее:

1) Убедиться, что на диске  при-
   сутствуют   файлы    "STS5.1"
   (этот файл также может  назы-
   ваться "STS5.1AL", "STS5.1XX"
   и т.п.),"sts5.1a", "sts5.1b".

2) Запустить файл "STS5.1".
140.
3) Нажать клавишу "U".  Адрес  в
   верхней части  экрана  должен
   стать равным #FE2A.

4) С адреса #FE2A ввести  коман-
   ду ассемблера JP #FE74  (что-
   бы можно было  вызывать  под-
   программу,    устанавливающую
   значения регистров, при нажа-
   тии "SS+U").

5) Начиная с адреса #FE71,  вве-
дите программу:

#FE71:  JP      #F86A
        LD      HL,#FEB1
        CALL    #E354
        LD      HL,(#FEE6)
        CALL    #E33D
        PUSH    DE
        PUSH    HL
        LD      HL,#DC7B
        SET     0,(HL)
        BIT     2,E
        JR      NZ,#FE8D
        RES     0,(HL)
        POP     HL
        LD      IX,#FEBF
        CALL    #E33D
        LD      A,(IX+#00)
        INC     IX
        LD      (#FE9F),A
        LD      (#FE00),DE
        CP      #E4
        JR      NZ,#FE92
        LD      (#FEFE),DE
        LD      (#FEE6),HL
        POP     AF
        LD      (#FEF4),A
        RET
        LD      DE,(#E33B)
        LD      A,D
        OUT     (C),E
        LD      E,(HL)
        INC     HL
        LD      D,(HL)
        INC     HL
        OUT     (C),A
        RET

5) Со следующего адреса  (#FEBF)
введите блок кодов:

#FEBF:  #F4,#FC,#F6,#F8,#FA,#EA,#E8,#EC
        #EE,#F0,#F2,#E4

6) По приведенному дампу  памяти
проверьте, правильно ли внесены
изменения:

#FE71   #C3,#6A,#F8,#21,#B1,#FE,#CD,#54
#FE79   #E3,#2A,#E6,#FE,#CD,#3D,#E3,#D5
#FE81   #E5,#21,#7B,#DC,#CB,#C6,#CB,#53
#FE89   #20,#02,#CB,#86,#E1,#DD,#21,#BF
#FE91   #FE,#CD,#3D,#E3,#DD,#7E,#00,#DD
#FE99   #23,#32,#9F,#FE,#ED,#53,#00,#FE
#FEA1   #FE,#E4,#20,#ED,#ED,#53,#FE,#FE
#FEA9   #22,#E6,#FE,#F1,#32,#F4,#FE,#C9
#FEB1   #ED,#5B,#3B,#E3,#7A,#ED,#59,#5E
#FEB9   #23,#56,#23,#ED,#79,#C9,#F4,#FC
#FEC1   #F6,#F8,#FA,#EA,#E8,#EC,#EE,#F0
#FEC9   #F2,#E4
2
    После того, как  вы  набрали
эту программу, необходимо сохра-
нить ее на диске. Это можно сде-
лать двумя путями:

1) Записать весь  STS  вместе  с
   внесенными  изменениями    на
   диск. Этот  вариант  является
   оптимальным, если  вам  часто
   приходится заниматься  отлад-
   кой @-файлов. Для записи нуж-
   но сначала с помощью  клавиши
   "B" установить Bank=#18,  за-
   тем нажать клавишу "E" и пос-
   ле  появления  меню   "Setup"
   выбрать пункт "Config Save".

2) Записать  в  отдельном  файле
   только  внесенные  изменения.
   Для  этого  нажмите   клавишу
   'S', укажите  имя  файла, на-
   пример, "@VIEW", затем  стар-
   товый адрес  (#FE2A)  и длину
   (#A1 байт).  Учтите, что  при
   каждом следующем запуске  STS
   для работы с  @-файлами  при-
   дется загружать файл с  изме-
   нениями. Перед загрузкой это-
   го  файла  необходимо  нажать
   'U', а после  нее  установить
   Bank=#18.

    Теперь я расскажу об особен-
ностях загрузки @-файлов.  Преж-
де всего, перед загрузкой  необ-
ходимо правильно установить зна-
чение Bank во избежание  затира-
ния STS. Обычно Bank=#18.  После
указания   имени    загружаемого
@-файла  STS  выдает  в  строках
Start и Len информацию из  ката-
лога. Значение  параметра  Start
нужно запомнить (т.к.  на  самом
деле это не адрес начала загруз-
ки,  а  адрес  вершины  стека  в
@-файле). Для правильной загруз-
ки  вы  должны  указать  Start =
#4000,  Len = #C000.  После  за-
грузки вспомните значение  пара-
метра  Start, записанное в ката-
логе диска, и укажите его в  ре-
гистре SP. Затем нажмите  комби-
нацию клавиш 'SS+U', и  регистры
примут соответствующие значения.
Далее можете отлаживать @-файл.

    Учтите,  что  фрагмент  про-
граммы, устанавливающий значения
регистров для @-файла,  занимает
область памяти, в которой раньше
была процедура  дизассемблирова-
ния  с  метками  (при    отладке
@-файлов она и не  нужна).  Фун-
кция пользователя, которая вызы-
вается  по  "SS+U", вначале  со-
стоит из одной команды JP #FE74,
но после того, как значения  ре-
гистров @-файла установлены, эту
функцию можно изменить.

            *   *   *




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

Adventure Project - Проектирование и разработака Адвентюрных и RPG игр.

Adventure Project - Русификация адвентюр.

TR-DOS для начинающих - Продолжение.

Авторская разработка - Scorpion 2000 (С.Зонов).

Авторская разработка - Трамплин (С.Веремеенко).

Визитная карточка - новый электронный юмористический журнал "SpectrofUn".

Перекресток драконов - Раскрутка игры Finders Keepers.

Перекресток драконов - Раскрутка игры Knight Tyme.

Перекресток драконов - Раскрутка игры Spellbound.

Перекресток драконов - Раскрутка игры Stormbringer.

Ретро - 40 лучших процедур: Слияние картинок, Вращение символа по часовой стрелке, Инвертирование символов, Изменение атрибута, Закрашивание контура, Построение шаблонов (Дж.Хардман, Э.Хьюзон.).

Советы экспертов - Total Eclipse 2.

Советы экспертов Super League.

Форум-игры - Описание игры Страна Мифов.

Форум-игры - Прохождение Renegade.

Форум-игры - Тонкости торговли в игре Elite

Форум - Изучение и отладка @-файлов с помощью STS 5.1. Особенности отладки программ с помощью монитора STS. Исправление ошибки STS 5.1.

Форум - Компрессия программ.

форум - О сокращении времени форматирования. О записи секторов одновременно с форматированием. Перестроение экрана за одно прерывание.

Форум - Особенности ассемблера ZX ASM 3.0.

Форум - По поводу компилятора бейсика "Blast".

Форум - По поводу релоцируемых программ.

Форум - Программы "Пламя" и "Дракон".

Читатель-читателю - TR-DOS: как не допустить ошибки?

Читатель-читателю - Эффективная работа с дисководом .

Этиды - Расчет адреса в файле атрибутов. Программа скроллирования заданного окна на 1 пиксел вправо. Программа очистки заданного окна. Процедура вывода картинки из буфера.

Этюды - Индикатор каналов музыкального процессора. Процедура очистки экрана. Предложение по стандартизации.

Этюды - Набор из восьми программ "расширения" экрана. Две процедуры проявления экрана.

Этюды - Новые темы для разработок.

Этюды - Программа воспроизведения инструмента от редакторов оцифрованной музыки.

Этюды - Программа обработки @-бейсик файлов.

Этюды - Процедура поворота символа на 90 градусов по часовой стрелке.

Этюды - Процедура поиска текстовых файлов.

Этюды - Экранная процедура "UP HL".


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

Похожие статьи:
scene intro - сценовое вступление.
О разном - Фирменный знак ZX-SPECTRUM.
Бук - Похождения Штиpлица и дpугие пpиключения Боpмана.
Анекдоты - юмор.
Всякая всячина - Реклама.

В этот день...   21 ноября