|
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>----+
Другие статьи номера:
Похожие статьи:
В этот день... 13 ноября