ZX Element #02
06 июня 1998

Прогаммистам - переброска SCR за INT.

     Технология вывода полноэкранного     
  изображения без атрибутов за прерывание 
                                          
                                          
(С) Mythоs                                
                                          
                                          
   Несколько лет назад перед кодерами Спе-
ктрума  встала проблема вывода полноэкран-
ного изображения  за  int. О ее решении  я
ничего не слышал, и сейчас попробую прове-
сти краткий  анализ  нескольких  методов и
рассказать о сабже :)                     
                                          
   Начну я  с известных всем методов LDIR,
LDI.                                      
                                          
   Команда LDIR кидает байт за 21 такт    
                                          
   Кинуть весь экран успеем только за     
21*6911+16=145147, да немножко не успеваем
                                          
   Командами LDI кидаем байт за 16 тактов 
                                          
   Экран кинуть сможем за 16*6912=110592 т
без атрибутов 16*6144=98304 т,  тормозим и
тут, да и память жалко.                   
                                          
   Далее есть способ, так  называемый "вы-
вода  через  стек". Способ  быстрый, но не
самый лучший. Максимальный эффект  при ис-
пользовании  кроме  основных  регистров  и
альтернативные.                           
                                          
   Стеком кинем байт за 13.5 тактов       
                                          
   Экран кидаем за 13.5*6912=93312 т      
   без атрибутов 13.5*6144=82944 т        
                                          
   Неуспеваем и здесь.                    
                                          
   Если копнуть еще глубже то можно  найти
еще несколько оригинальных способов, о ко-
торых я тольком не знаю, к сожалению.     
   А сейчас самый, на мой взгляд, эффекти-
вный способ.                              
                                          
   Сразу скажу, что байт кидаем за        
              10.5 тактов                 
                                          
   Экран соответственно за                
   10.5*6912=72576 т                      
По моему даже Пентагон, не успеет         
                                          
   без атрибутов 10.5*6144=64512 т        
А здесь успевает наверное любой компьютер.
                                          
   Суть метода в  том, что  ваша  картинка
будет распределена в программе.           
                                          
Пишем код:                                
       LD SР,#5В00                        
       LD НL,#223A;ВАША ГРАФИКА, АТРИБУТЫ 
       РUSН НL                            
       LD НL,#3AВ3;EЩЕ ГРАФИКА            
       РUSН НL                            
       ...                                
                                          
   Ну и таких строчек надо не мало. В ито-
ге ваш экран  будет занимать, ровно в  два
раза больше памяти.                       
                                          
   В чем еще прелесть данного метода: если
вы  заметили, вы  можете выводить картинку
храня ее одновремменно в жатом состоянии. 
                                          
Объясняю: если в картинке идут подряд бай-
ты, скажем, #аЬ03,#аЬ03... можно будет на-
писать в программе:                       
                                          
       LD НL,#AВ03                        
       РUSН НL                            
       РUSН НL                            
       ...                                
                                          
   При  этом  скорость  вывода изображения
повышается!                               
                                          
                                          
   Если хочется выводить  спрайты  в такой
экран, то если подумать можно запросто на-
писать процедуру вывода спрайта  или может
даже точки или линии. Но в этом  случае не
должно быть компресии.                    
                                          
   Ну вот вроде и все о чем  я хотел пове-
дать. Признаться, я даже и не думал писать
об етом, думая  что  уже  все известно, но
когда я начинал рассказывать, на меня смо-
трели с  большими  глазами  и говорили что
это круто.                                
                                          
------------------------------------------
                                          
                                          
                                          
                                          
                                          
                                          
                                          



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

Введение - От авторов.

Игрушки - Heavy on the magic.

Игрушки - Defender of the crown.

Игрушки - War in the middle earth.

Игрушки - Dommdark revenge.

Игрушки - Monstrland.

Прогаммистам - Интеллект.

Прогаммистам - Алгоритм.

Прогаммистам - переброска SCR за INT.

Интервью - IMP DMS RUSH.

Интервью - FATALITY.

Интервью - SERGEY STURM LGN.

Развлечения - Prodigy.

Развлечения - Двое в гамаке.

Развлечения - Законы Мерфи.

Развлечения - Пословицы.

Чугуний - Модем.

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

Чугуний - Турбо для Байта.

Чугуний - Байт-01.

Почтовый ящик - Письма.

Разное - Рек-тайм.

Разное - RUSH I_S_P_A.

Разное - Развитие Амиги.

Разное - Модели Амиги.

Разное - Байки из склепа.

Разное - Опрос.

Разное - Дистрибьюция Черного Ворона.

Разное - Дистрибьюторы СНГ.

Разное - Мозаика.

Программы - Text print v1.6

Программы - Принтер.

Программы - Редактор Last battle.

Программы - Fast zero v1.4+

Программы - Real commander.

Программы - Quick commander.

Подвал букиниста - Резервация.

Из неопубликованого - Поскриптум.

Из неопубликованого - Вступление.

Из неопубликованого - Анкета.

Из неопубликованого - Структуры модулей PSC.

Из неопубликованого - Схема.

Из неопубликованого - Проги.

Из неопубликованого - Echo.

Из неопубликованого - Размышления.

Из неопубликованого - Спасите спектрум!


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

Похожие статьи:
Тема - О работе с электронным диском в IS-Dos.
Музликбез - новые веяния музыкальной культуры.
Железяка - Более глобальная схема радиодатчика с питанием от батарейки для электронных часов.

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