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

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

<b>Форум</b> - По поводу релоцируемых программ.
┌──────────────────────────────┐
│                              │
│            ФОРУМ             │
│                              │
└──────────────────────────────┘

(c) Иван Рощин, г.Москва, 1997

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

   Прочитав несколько  статей  в
ZX-РЕВЮ, посвященных  релоцируе-
мым  программам, я  заметил, что
для определения базового  адреса
обычно  используется   следующий
способ:
140.
CALL #007C  ; По этому адресу - RET.
DEC  SP     ; Т.к. в стеке находится
DEC  SP     ; адрес возврата.
POP  HL     ; Снимаем адрес со стека.
2
   У этого способа есть несколь-
ко недостатков:
   - если во время работы  этого
фрагмента  программы  произойдет
прерывание, содержимое стека бу-
дет  испорчено, и  в  результате
получим неверный адрес.  Поэтому
приходится запоминать  состояние
триггера  прерываний,  запрещать
прерывания, а потом восстанавли-
вать прежний  режим  их  работы.
Все это приводит к  дополнитель-
ным затратам памяти.
   - способ  не  сработает, если
по адресу #007C нет команды  RET
(нестандартное ПЗУ).
   - большая длина фрагмента  (6
байт).
   Есть  способ,  свободный   от
указанных выше недостатков:

HALT        ; В стек запишется адрес
            ; следующей команды (для
            ; возврата из прерывания)
DEC  SP     ; Так же, как и в первом
DEC  SP     ; фрагменте,
POP  HL     ; снимаем адрес со стека

   При этом расход памяти соста-
вит  лишь  четыре  байта  вместо
шести. В отличие от  предыдущего
примера, прерывания во время ра-
боты этого  фрагмента  программы
должны быть разрешены (чтобы вы-
полнилась команда HALT). Несмот-
ря на это, между  командами  DEC
SP прерывание не может  произой-
ти, т.к. после выполнения коман-
ды HALT остается еще 1/50 секун-
ды до следующего прерывания.

           *   *   *




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

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".


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

Похожие статьи:
Версии - 2 версии игры: CYRUS CHESS 2.
Scene News: wanna more? - Прoхoдили гoды, meнялиcь пoлитичecкиe рeжиmы, вoзвoдилиcь нoвыe кomaнды и рyшилиcь cтaрыe, cцeнa эвoлюциoнирoвaлa, нecmoтря нa прeдрeкaющийcя зaкaт эпoхи Speccy...
Sofтинка - Проблемы и недоработки пакета утилит для работы с устройствами хранения данных DNA_OS.
Проза - БИЛЛ - ГЕРОЙ ГАЛАКТИКИ. Гарри Гаррисон Главы 1 - 4.
Чемпионат - Результаты сыгранных матчей по футболу.

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