ZX Element #02
06 июня 1998

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

<b>Прогаммистам</b> - переброска SCR за INT.
     Технология вывода полноэкранного     
  изображения без атрибутов за прерывание 
                                          
                                          
(С) Mythos                                
                                          
                                          
   Несколько лет назад перед кодерами Спе-
ктрума  встала проблема вывода полноэкран-
ного изображения  за  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 SP,#5В00                        
       LD HL,#223A;ВАША ГРАФИКА, АТРИБУТЫ 
       PUSH HL                            
       LD HL,#3AB3;ЕЩЕ ГРАФИКА            
       PUSH HL                            
       ...                                
                                          
   Ну и таких строчек надо не мало. В ито-
ге ваш экран  будет занимать, ровно в  два
раза больше памяти.                       
                                          
   В чем еще прелесть данного метода: если
вы  заметили, вы  можете выводить картинку
храня ее одновремменно в жатом состоянии. 
                                          
Объясняю: если в картинке идут подряд бай-
ты, скажем, #аЬOЗ,#аЬOЗ... можно будет на-
писать в программе:                       
                                          
       LD HL,#AB03                        
       PUSH HL                            
       PUSH HL                            
       ...                                
                                          
   При  этом  скорость  вывода изображения
повышается!                               
                                          
                                          
   Если хочется выводить  спрайты  в такой
экран, то если подумать можно запросто на-
писать процедуру вывода спрайта  или может
даже точки или линии. Но в этом  случае не
должно быть компресии.                    
                                          
   Ну вот вроде и все о чем  я хотел пове-
дать. Признаться, я даже и не думал писать
об етом, думая  что  уже  все известно, но
когда я начинал рассказывать, на меня смо-
трели с  большими  глазами  и говорили что
это круто.                                
                                          
------------------------------------------
                                          
                                          
                                          
                                          
                                          
                                          
                                          



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

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

Игрушки - 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.

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

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


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

Похожие статьи:
Их нравы - бабка стриптизерша.
Раскрутка - Советы для лентяев по выживанию в игре MURK 3320.
Музыка - Горизонты турбосаунда: Cj Splinter делится опытом работы с TurboSound.
Credits - Напоследок...
Intro - Авторы и координаты...

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3