📄 newgfxwn.mac
字号:
add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8] add bl,dl mov [edi+288*6],bl mov bl,[ecx] add bl,dl mov [edi+288*7],bl%%nodrawc inc ecx inc edi dec dword[tleftnb] jnz near %%loopfc sub edi,8 jmp %%end%%flipxyfull mov dword[tleftnb],8 add ecx,7%%loopfd dec dword[ngcpixleft] jnz %%notzerod call Nextwinmode%%notzerod cmp dword[ngcwinmode],1 je %%nodrawd mov bl,[ecx+8*7] add bl,dl mov [edi],bl mov bl,[ecx+8*6] add bl,dl mov [edi+288],bl mov bl,[ecx+8*5] add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8] add bl,dl mov [edi+288*6],bl mov bl,[ecx] add bl,dl mov [edi+288*7],bl%%nodrawd dec ecx inc edi dec dword[tleftnb] jnz near %%loopfd sub edi,8 jmp %%end%%parttile %2 ; start drawing from ecx test dword[vrama+eax],8000h jnz near %%flipyfullp test dword[vrama+eax],4000h jnz near %%flipxfullp mov dword[tleftnb],8%%loopfap dec dword[ngcpixleft] jnz %%notzerop call Nextwinmode%%notzerop parttilewin 0,0 parttilewin 1,1 parttilewin 2,2 parttilewin 3,3 parttilewin 4,4 parttilewin 5,5 parttilewin 6,6 parttilewin 7,7 inc ecx inc edi dec dword[tleftnb] jnz near %%loopfap sub edi,8 jmp %%end%%flipxfullp mov dword[tleftnb],8 add ecx,7%%loopfbp dec dword[ngcpixleft] jnz %%notzerobp call Nextwinmode%%notzerobp parttilewin 0,0 parttilewin 1,1 parttilewin 2,2 parttilewin 3,3 parttilewin 4,4 parttilewin 5,5 parttilewin 6,6 parttilewin 7,7 dec ecx inc edi dec dword[tleftnb] jnz near %%loopfbp sub edi,8 jmp %%end%%flipyfullp test word[vrama+eax],4000h jnz near %%flipxyfullp mov dword[tleftnb],8%%loopfcp dec dword[ngcpixleft] jnz %%notzerocp call Nextwinmode%%notzerocp parttilewin 7,0 parttilewin 6,1 parttilewin 5,2 parttilewin 4,3 parttilewin 3,4 parttilewin 2,5 parttilewin 1,6 parttilewin 0,7 inc ecx inc edi dec dword[tleftnb] jnz near %%loopfcp sub edi,8 jmp %%end%%flipxyfullp mov dword[tleftnb],8 add ecx,7%%loopfdp dec dword[ngcpixleft] jnz %%notzerodp call Nextwinmode%%notzerodp parttilewin 7,0 parttilewin 6,1 parttilewin 5,2 parttilewin 4,3 parttilewin 3,4 parttilewin 2,5 parttilewin 1,6 parttilewin 0,7 dec ecx inc edi dec dword[tleftnb] jnz near %%loopfdp sub edi,8 jmp %%end%5 processwinpixel processwinpixel processwinpixel processwinpixel%%end mov ebx,[ng16bbgval] add ax,2 inc dword[bg1totng+ebx*4] add edi,8 test eax,03Fh jz %%tileadd%%next dec byte[tleftn] jnz near %4 pop ebx ret%%docache call %3 jmp %%returnfromcache%%tileadd add ax,[bgtxadd] jmp %%next%endmacro%macro drawtileng16x16win 8 ; tile value : bit 15 = flipy, bit 14 = flipx, bit 13 = priority value ; bit 10-12 = palette, 0-9=tile# mov ebx,[ng16bbgval] mov dl,ch inc dword[bg1drwng+ebx*4] and ecx,3FFh and edx,1Fh add ecx,[ngptrdat2] add cx,[taddnfy16x16] test dword[vrama+eax],8000h jz %%noflipy add cx,[taddfy16x16]%%noflipy test dword[vrama+eax],4000h jz %%noflipx inc cx%%noflipx%%nexttile push ecx push edx mov edx,[%6+edx*4] %7 jnz near %%docache%%returnfromcache cmp byte[%1+ecx],2 je near %%skip cmp byte[%1+ecx],0 je near %%parttile %2 ; start drawing from ecx test dword[vrama+eax],8000h jnz near %%flipyfull test dword[vrama+eax],4000h jnz near %%flipxfull mov dword[tleftnb],8%%loopfa dec dword[ngcpixleft] jnz %%notzero call Nextwinmode%%notzero cmp dword[ngcwinmode],1 je %%nodraw mov bl,[ecx] add bl,dl mov [edi],bl mov bl,[ecx+8] add bl,dl mov [edi+288],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*5] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8*6] add bl,dl mov [edi+288*6],bl mov bl,[ecx+8*7] add bl,dl mov [edi+288*7],bl%%nodraw inc ecx inc edi dec dword[tleftnb] jnz near %%loopfa sub edi,8 jmp %%end%%flipxfull mov dword[tleftnb],8 add ecx,7%%loopfb dec dword[ngcpixleft] jnz %%notzerob call Nextwinmode%%notzerob cmp dword[ngcwinmode],1 je %%nodrawb mov bl,[ecx] add bl,dl mov [edi],bl mov bl,[ecx+8] add bl,dl mov [edi+288],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*5] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8*6] add bl,dl mov [edi+288*6],bl mov bl,[ecx+8*7] add bl,dl mov [edi+288*7],bl%%nodrawb dec ecx inc edi dec dword[tleftnb] jnz near %%loopfb sub edi,8 jmp %%end%%flipyfull test word[vrama+eax],4000h jnz near %%flipxyfull mov dword[tleftnb],8%%loopfc dec dword[ngcpixleft] jnz %%notzeroc call Nextwinmode%%notzeroc cmp dword[ngcwinmode],1 je %%nodrawc mov bl,[ecx+8*7] add bl,dl mov [edi],bl mov bl,[ecx+8*6] add bl,dl mov [edi+288],bl mov bl,[ecx+8*5] add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8] add bl,dl mov [edi+288*6],bl mov bl,[ecx] add bl,dl mov [edi+288*7],bl%%nodrawc inc ecx inc edi dec dword[tleftnb] jnz near %%loopfc sub edi,8 jmp %%end%%flipxyfull mov dword[tleftnb],8 add ecx,7%%loopfd dec dword[ngcpixleft] jnz %%notzerod call Nextwinmode%%notzerod cmp dword[ngcwinmode],1 je %%nodrawd mov bl,[ecx+8*7] add bl,dl mov [edi],bl mov bl,[ecx+8*6] add bl,dl mov [edi+288],bl mov bl,[ecx+8*5] add bl,dl mov [edi+288*2],bl mov bl,[ecx+8*4] add bl,dl mov [edi+288*3],bl mov bl,[ecx+8*3] add bl,dl mov [edi+288*4],bl mov bl,[ecx+8*2] add bl,dl mov [edi+288*5],bl mov bl,[ecx+8] add bl,dl mov [edi+288*6],bl mov bl,[ecx] add bl,dl mov [edi+288*7],bl%%nodrawd dec ecx inc edi dec dword[tleftnb] jnz near %%loopfd sub edi,8 jmp %%end%%parttile %2 ; start drawing from ecx test dword[vrama+eax],8000h jnz near %%flipyfullp test dword[vrama+eax],4000h jnz near %%flipxfullp mov dword[tleftnb],8%%loopfap dec dword[ngcpixleft] jnz %%notzerop call Nextwinmode%%notzerop parttilewin 0,0 parttilewin 1,1 parttilewin 2,2 parttilewin 3,3 parttilewin 4,4 parttilewin 5,5 parttilewin 6,6 parttilewin 7,7 inc ecx inc edi dec dword[tleftnb] jnz near %%loopfap sub edi,8 jmp %%end%%flipxfullp mov dword[tleftnb],8 add ecx,7%%loopfbp dec dword[ngcpixleft] jnz %%notzerobp call Nextwinmode%%notzerobp parttilewin 0,0 parttilewin 1,1 parttilewin 2,2 parttilewin 3,3 parttilewin 4,4 parttilewin 5,5 parttilewin 6,6 parttilewin 7,7 dec ecx inc edi dec dword[tleftnb] jnz near %%loopfbp sub edi,8 jmp %%end%%flipyfullp test word[vrama+eax],4000h jnz near %%flipxyfullp mov dword[tleftnb],8%%loopfcp dec dword[ngcpixleft] jnz %%notzerocp call Nextwinmode%%notzerocp parttilewin 7,0 parttilewin 6,1 parttilewin 5,2 parttilewin 4,3 parttilewin 3,4 parttilewin 2,5 parttilewin 1,6 parttilewin 0,7 inc ecx inc edi dec dword[tleftnb] jnz near %%loopfcp sub edi,8 jmp %%end%%flipxyfullp mov dword[tleftnb],8 add ecx,7%%loopfdp dec dword[ngcpixleft] jnz %%notzerodp call Nextwinmode%%notzerodp parttilewin 7,0 parttilewin 6,1 parttilewin 5,2 parttilewin 4,3 parttilewin 3,4 parttilewin 2,5 parttilewin 1,6 parttilewin 0,7 dec ecx inc edi dec dword[tleftnb] jnz near %%loopfdp sub edi,8 jmp %%end%%skip processwinpixel processwinpixel processwinpixel processwinpixel%%end pop edx pop ecx inc cx test dword[vrama+eax],4000h jz %%noflipxb sub cx,2%%noflipxb add edi,8 xor dword[switch16x16],1 jnz near %%nexttile%%ntile mov ebx,[ng16bbgval] add ax,2 inc dword[bg1totng+ebx*4] test eax,03Fh jz near %%tileadd%%next dec byte[tleftn] jnz near %4 pop ebx ret%%done%5 processwinpixel processwinpixel processwinpixel processwinpixel processwinpixel processwinpixel processwinpixel processwinpixel add edi,16 jmp %%ntile%%docache call %3 jmp %%returnfromcache%%tileadd add ax,[bgtxadd] jmp %%next%endmacro
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -