Buzz #12
30 декабря 1997

Ассемблер - Процедура "Chunky to planar" - вывод chunky dat'ы на planar'ный экран.

                          ___     _          --/
       · - = Ё  │<A│< Р\/ЛИ│Ь  8  ╫((ЕМБЛЕРЕ  /80  Ё = - ·
                       /                     /--
                    ▓▓░ ▓▓▓▓▓▓▓▓▓▓▓▓▓ ░▓▓
                   ▓▓▓▓░ ▓▓░         ░▓▓ ░▓▓
                  ▓▓░ ▓▓░ ▓▓▓▓▓▓▓▓▓ ░▓▓ ░▓▓▓▓
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▓▓░   ▓▓░     ░▓▓ ░▓▓ ░▓▓ ░▓▓ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▓▓▓▓▓▓░ ▓▓░   ░▓▓ ░▓▓▓▓▓▓   ░▓▓ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
▀▀▀▀▀▀▀▀▀▀▀▀▀▀           ▓▓░ ░▓▓ ░▓▓ ░▓▓     ░▓▓ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
              ▓▓░         ▓▓░▓▓ ░▓▓   ░▓▓     ░▓▓
             ▓▓░  RULEZ!   ▓▓▓ ░▓▓     ░▓▓     ░▓▓

  Hi,to all who read this shit!

(c) on this fucking text by Exploder/Extreme

  Для начала немного про то, что такое C2P и для чего он нужен.
chunky to planar - это программа для вывода chunky dat'ы на
                   planar'ный screen.
  Для Spectrum'а это характерно только в том случае, если вы
работаете с размером точки 4х4 в текстурном режиме, и при точке
4x8 or 4x4 or 4x2 в аттрибутном режиме. Размер по X=8 это и ежу
понятно уже chunky mode. Размер точки по Х=2 я считаю не 
перспективным потому, что это очень тормознуто и в 4х цветах
смотреться будет все как full shit.
  Теперь немного бреда о том зачем он ваще нужен. Без C2P вам
никогда не написать (только при pix size 8x8) эффекты типа:
stretch texture, bump mapping, texture mapping, gouraud mapping,
textute mapping + gouraud shading, phong mapping, environment
mapping, lenz flare, visible light rays, voxel landscape, blur
и вообще все то что можно увидеть на A1200.

 +------------------------------------------------------------+
 |           - Chunky to planar engine for ZX-128 -           |
 |             - last n'joyment date: 10-JUN-97 -             |
 +------------------------------------------------------------+

And now...
Ultra faaaaast c2p algorythm 

ver_1: attributed mode
        POP     HL              ; Read 2 bytez of chunky data
        LDI                     ; Write planar data to screen

About 26 takts of CPU power

Really needed:
        SP = Pointer to chunky buffer
        DE = Pointer to destination screen byte

ver_2: textured mode
        POP     HL              ; Read 2 bytez of chunky data
        LD      C,(HL)          ; 
        LD      A,(BC)          ;
        LD      (DE),A          ; Write
        INC     B               ;
        INC     D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Textured
        INC     B               ;
        INC     D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Sprite to
        INC     B               ;
        INC     D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Screen
        INC     E               ;
        POP     HL              ; Read 2 bytez of chunky data
        LD      C,(HL)          ; 
        LD      A,(BC)          ;
        LD      (DE),A          ; Write
        DEC     B               ;
        DEC     D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Textured
        DEC     B               ;
        DEC     D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Sprite to
        DEC     B               ;
        D8EC    D               ;
        LD      A,(BC)          ;
        LD      (DE),A          ; Screen
        INC     E               ;

About 202 takts of CPU power

Really needed:
        SP = Pointer to chunky buffer
        DE = Pointer to destination screen byte
        B  = Textured data table 

        Is the fastest c2p codez for Z80. Nothing else.

  Теперь маненечко comments for lame coders or full stupids.
Смысл всего выше написаного в том, что в каждом байте dat'ы
в битах 7-4 должен находится адрес на C2P_tab.
 
chunky byte:  1000 0000
                |    \
                |     16 gray scales or 8 colors
                |
                4 bites of C2P_tab based address 

C2P_tab:
 #8080   00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0d 0e 0f
 #8180   10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1d 1e 1f
 .....
 #8e80   e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ed ee ef
 #8f80   f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fd fe ff
  | |
  C2P_tab based address

C2P_tab может располагатся где угодно, и она сама по себе
является палитрой.

Усе.

Russian text comments added by me of COZ especialy for
BUZZ computer newspaper on 16.12.97
                                                   good luck !!!
 
 +----------------------------------------*Exploder/Extreme*--+
 |     - exploder_xtm@usa.net -   - +7 (0922) 29-04-25 -      |
 +-------------------------------------------<ZX128,A1200>----+



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

Rants & Raves - Лучшая пятерка афоризмов из газеты ZX-Pilot.

А\BOX часть 1 - Шаг к мечте : Продукт-данные-факты, Концепция А\BOX; Cиликоновая мечта; Основные характеристики Laipitinha; Основные характеристики A\BOX; Операционная система A\BOX; Развитие в будущем.

Авторы

Анекдоты - 22 анекдота...

Ассемблер - Процедура "Chunky to planar" - вывод chunky dat'ы на planar'ный экран.

Законы Мерфи - Универсальные законы, разработанные на основе закона Мерфи (закона подлости).

Ликбез - Методы некоммерческой дистрибьюции программного обеспечения.

Наши новости - Турбо копировщик VooDoo Copyer от Paracels'а. Поздравляем всех с Новым годом !

Обзорчик SYS - Обзор системных программ: Bytamare v2.0, Hrum v3.5, PCD v6.2.

Обзорчик - Обзор игровых программ: Motos, West Bank, Technodrome, Semour take one, Arcanoid-2, Q10 Tank Buster, Iindiana Jones and the Last Crusade.

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


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

Похожие статьи:
Список BBS - Список станций BBS.
Обзор - новые программные продукты, поступившие за прошедшую неделю.
Реклама - Реклама и объявления ...

В этот день...   11 июля