Public Spirit #01
17 мая 1997

Кодерам - переброска экрана за прерывание, Паковщики.

<b>Кодерам</b> - переброска экрана за прерывание, Паковщики.
 музыка:               автор:
(с) Dave             (с) DEX&
                      (c) SEM

    В  ZX-POWER  #1  шли дебаты
по     поводу   того,  можно-ли
перекинуть экран из ОЗУ в видео
менее чем за одно прерывание.
    Давайте  разберемся получше
и проведем  некоторые расчеты :
итак   известно,  что  наиболее
оптимальным способом переброски
данных является т.н. 'стековый'
способ.  суть его заключается в
следующем :
    Стек   устанавливается   на
последний   байт  области  куда
будет           перебрасываться
информация.    Потом    в    HL
загружается   пара   байт   для
переброски   и   делается  PUSH
HL.Таким  образом  за 11 тактов
(PUSH  HL) перекидывается сразу
2    байта.   Эта-же   операция
выполняется    для   оставшейся
информации.         Безусловное
преимущество    этого    метода
в   скорости        переброски,
но    главным       недостатком
способа     являются    жесткие
требования    предъявляемые  к
количеству  свободной    памяти
(короче, жрет много памяти).
  Теперь от теории к практике :
    Способ   с   использованием
цикла  отметаем  сразу  как  не
самый  быстрый. Остается только
развернуться   во   всю  память
заполнив   ее   многочисленными
блоками типа :

LD HL,#NNNN    ;перебрасываемые
               ;байты  (1)
PUSH HL        ;собственно,
               ;переброска

    Количество    этих   блоков
определяется             длиной
перекидываемого   блока   кодов
деленного    на    два    (т.к.
перекидывается  по два байта за
раз).
    Теперь  вернемся собственно
к  теме статьи : нам необходимо
перекинуть      экран     (6912
байт). Следовательно необходимо
раскрунчиться   в   13827  байт
(6912/2 -количество конструкций
типа (1)=3456 и умноженное на 4
(количество   байт   занимаемых
конструкцией).  =13824 и плюс 3
байта на команду LD SP,#5B00).
    Подсчитаем           теперь
количество   тактов  занимаемых
всей процедурой.
(10+11)*3456=72576 тактов.
10-количество тактов LD HL,NNNN
11- ------//-------- PUSH HL
3456-количество повторений.

   Делаем вывод :

НА ФИРМЕНОЙ МАШИНЕ  НЕВОЗМОЖНО,
Т.К. ТАМ МЫ ИМЕЕМ 70000 ТАКТОВ.
НО   МОЖНО    ПЕРЕКИНУТЬ     НА
МАШИНАХ   ИМЕЮЩИХ  БОЛЕЕ  72650
ТАКТОВ.     Т.К.    НАДО    ЕЩЕ
ЗАПОМНИТЬ,   УСТАНОВИТЬ       И
ВОССТАНОВИТЬ   СТЕК,  И   САМОЕ
ГЛАВНОЕ   ВЫЗВАТЬ  ПРОЦЕДУРУ  И
ВЕРНУТЬСЯ ИЗ НЕЕ.

Вот мы здесь считали, считали,а
теперь задумаемся, нужна ли нам
такая переброска ?
    Практической    выгоды   из
этого никакой. Ведь нам еле-еле
хватает тактов на переброску, а
кому     нужно    перебрасывать
статическое  изображение 50 раз
в секунду ?
    Но  ведь  нам  надо его еще
изменять,  а  это  уже   второе
прерывание (если не третье). За
сим делаем окончательный вывод:

 ПЕРЕКИНУТЬ МОЖНО,НО НЕ НУЖНО!

    Вопрос    просим   считать
закрытым.

Спасибо за внимание, DSEEMX.
то бишь
SEM И DEX.
или
DEX И SEM.

(C) CODERS' ACADEMY
4:44:35 AM 21/04/97. AD






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

Авторы - Обращение руководства CODERS' ACADEMY.

Новинки - MICROEDITOR v.3.09, PCX - VIEW, Spectrofon to ZX-Word coder, FAST READER, The Fast Packet v1.0x, RETURN TO HOME 4, STRIP REVERSI, MORTAL KOMBAT,

Шедевры - Новелла: ЗВЕЗДНОЕ НАСЛЕДИЕ или рокамболь на Раксле.

Хиты - Описание программ из приложения: HEAVY METAL MOVER, TRANTOR, PENTIX, DIGITAL STUDIO COMPILER (LPT-Colox version).

Дискуссия - Неплохо бы ассемблер обновить. "Почему так мало больших программ выходит для Спектрума?"

Кодерам - переброска экрана за прерывание, Паковщики.

Кодерам - обзор современных паковщиков данных: MS-Pack, Mega LZ, ZX-ZIP, ASC LZ PACK.

Железо - КОНТРОЛЛЕР Flash/RAM/ROM-DISK, ZX LPRINT III, AY-8910.

Ха-ха - Юмор.

TOP TEN - Игры лидеры продаж за 1997 год в Таганроге.

Прогноз - Представление еще не вышедших игр: HEAVY METAL MOVER II, WING COMMANDER, PENTIX, SODOM 3D.

Почта - Анонс раздела.

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


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

Похожие статьи:
20 things to do whilst waiting for a game to load
Rave by Spy - Жизьтянка (Как всегда немного бреда от Spy'я).
НА-ЧАЛО - Hello, wild spekk user!!! Чё дeлaeш? Я вoт вступлeниe тут щaс пишу...
graphician - лучший художник на спектруме
Свиток - подробное описание игры Doc The Destroyer.

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