📄 newg162.asm
字号:
NEWSYM drawtileng8b16b mov ebp,[cpalval+ebx*4] determinetransp drawtileng8b16btdrawtileng8b16bnt CheckWindowing drawtileng8bwin drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalbdrawtileng8bwin: drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng8b16bt test byte[BGMS1+ebx*2+1],dl jnz near drawtileng8b16bms test byte[scadtng+ebx],dl jz near drawtileng8b16bnt CheckWindowing drawtileng8bwint drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbtdrawtileng8bwint: drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng8b16bms: test byte[scadtng+ebx],dl jz near drawtileng8b16bmsnt DetermineWindow drawtileng8b16bmstmsw, drawtileng8b16bmstmw, drawtileng8b16bmstsw drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmstdrawtileng8b16bmstmsw: drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng8b16bmstmw: drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng8b16bmstsw: drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng8b16bmsnt DetermineWindow drawtileng8b16bmsntmsw, drawtileng8b16bmsntmw, drawtileng8b16bmsntsw drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsntdrawtileng8b16bmsntmsw: drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng8b16bmsntmw: drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng8b16bmsntsw: drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb;******************************************; 16x16 tiles - tile engine;******************************************%macro WinClipMacro16x16 1 mov byte[tleftn],17 mov dword[ngcwinptr],ngwintable mov dword[ngcwinmode],0 cmp dword[ngwintable],0 jne .loop add dword[ngcwinptr],4 mov dword[ngcwinmode],1.winclipped mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],16 jbe near %1 sub dword[ebx],16 add ax,2 mov ebx,[ng16bbgval] add edi,32 inc dword[bg1totng+ebx*4] test eax,03Fh jnz .notileadd add ax,[bgtxadd].notileadd dec byte[tleftn] jnz .winclipped pop ebx cmp byte[curmosaicsz],1 jne near domosaicng16b ret.loop mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],16 jbe near %1 sub dword[ebx],16 xor ecx,[ng16bprval] test ecx,2000h jnz near .finline%endmacro%macro drawtile16b16x16 10 mov byte[tleftn],17%%loop mov cx,[vrama+eax] xor ecx,[ng16bprval] test ecx,2000h jnz near %%finline drawtileng16x1616b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%9,%10 ret%endmacro%macro drawtile16bw16x16 12 WinClipMacro16x16 %%processwinclip2b drawtileng16x1616b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8,%9,%10%%processwinclip2b mov ebx,[ngcwinptr] mov cx,[vrama+eax] mov ebx,[ebx] xor ecx,[ng16bprval] mov [ngcpixleft],ebx test ecx,2000h jnz near %%finline drawtileng16x16win16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%11,%12%%loop push eax mov ebx,[ngcwinptr] mov eax,[ngcpixleft] mov [ebx],eax pop eax cmp dword[ngcwinmode],1 je near .winclipped jmp .loop%endmacro%macro drawtile16bw216x16 14 mov byte[tleftn],17 mov dword[ngcwinptr],ngwintable mov dword[ngcwinmode],0 cmp dword[ngwintable],0 jne near .loop add dword[ngcwinptr],4 mov dword[ngcwinmode],1.winclipped mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],16 jbe near %%processwinclip2b sub dword[ebx],16 xor ecx,[ng16bprval] test ecx,2000h jnz near .finlineb drawtileng16x1616b %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%7,%8,%13,%14.loop mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],16 jbe near %%processwinclip2b sub dword[ebx],16 xor ecx,[ng16bprval] test ecx,2000h jnz near .finline drawtileng16x1616b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8,%9,%10%%processwinclip2b mov ebx,[ngcwinptr] mov cx,[vrama+eax] mov ebx,[ebx] xor ecx,[ng16bprval] mov [ngcpixleft],ebx test ecx,2000h jnz near %%finline drawtileng16x16win16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8,%11,%12%%loop push eax mov ebx,[ngcwinptr] mov eax,[ngcpixleft] mov [ebx],eax pop eax cmp dword[ngcwinmode],1 je near .winclipped jmp .loop%endmacroNEWSYM drawtileng16x162b16b mov ebp,[cpalval+ebx*4] determinetransp drawtileng2b16bt16x16drawtileng2b16bnt16x16 CheckWindowing drawtileng2bwin16x16 drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalbdrawtileng2bwin16x16: drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng2b16bt16x16 test byte[BGMS1+ebx*2+1],dl jnz near drawtileng2b16bms16x16 test byte[scadtng+ebx],dl jz near drawtileng2b16bnt16x16 CheckWindowing drawtileng2bwint16x16 drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalt,tilenormalbtdrawtileng2bwint16x16: drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng2b16bms16x16: test byte[scadtng+ebx],dl jz near drawtileng2b16bmsnt16x16 DetermineWindow drawtileng2b16bmstmsw16x16, drawtileng2b16bmstmw16x16, drawtileng2b16bmstsw16x16 drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmstdrawtileng2b16bmstmsw16x16: drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng2b16bmstmw16x16: drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng2b16bmstsw16x16: drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng2b16bmsnt16x16 DetermineWindow drawtileng2b16bmsntmsw16x16, drawtileng2b16bmsntmw16x16, drawtileng2b16bmsntsw16x16 drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsntdrawtileng2b16bmsntmsw16x16: drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng2b16bmsntmw16x16: drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng2b16bmsntsw16x16: drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalbNEWSYM drawtileng16x164b16b mov ebp,[cpalval+ebx*4] determinetransp drawtileng4b16bt16x16drawtileng4b16bnt16x16 CheckWindowing drawtileng4bwin16x16 drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalbdrawtileng4bwin16x16: drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng4b16bt16x16 test byte[BGMS1+ebx*2+1],dl jnz near drawtileng4b16bms16x16 test byte[scadtng+ebx],dl jz near drawtileng4b16bnt16x16 CheckWindowing drawtileng4bwint16x16 drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalt,tilenormalbtdrawtileng4bwint16x16: drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng4b16bms16x16: test byte[scadtng+ebx],dl jz near drawtileng4b16bmsnt16x16 DetermineWindow drawtileng4b16bmstmsw16x16, drawtileng4b16bmstmw16x16, drawtileng4b16bmstsw16x16 drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmstdrawtileng4b16bmstmsw16x16: drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng4b16bmstmw16x16: drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng4b16bmstsw16x16: drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng4b16bmsnt16x16 DetermineWindow drawtileng4b16bmsntmsw16x16, drawtileng4b16bmsntmw16x16, drawtileng4b16bmsntsw16x16 drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsntdrawtileng4b16bmsntmsw16x16: drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng4b16bmsntmw16x16: drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng4b16bmsntsw16x16: drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalbNEWSYM drawtileng16x168b16b mov ebp,[cpalval+ebx*4] determinetransp drawtileng8b16bt16x16drawtileng8b16bnt16x16 CheckWindowing drawtileng8bwin16x16 drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalbdrawtileng8bwin16x16: drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwbdrawtileng8b16bt16x16 test byte[BGMS1+ebx*2+1],dl jnz near drawtileng8b16bms16x16 test byte[scadtng+ebx],dl jz near drawtileng8b16bnt16x16 CheckWindowing drawtileng8bwint16x16 drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbtdrawtileng8bwint16x16: drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbtdrawtileng8b16bms16x16: test byte[scadtng+ebx],dl jz near drawtileng8b16bmsnt16x16 DetermineWindow drawtileng8b16bmstmsw16x16, drawtileng8b16bmstmw16x16, drawtileng8b16bmstsw16x16 drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmstdrawtileng8b16bmstmsw16x16: drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmstdrawtileng8b16bmstmw16x16: drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbsdrawtileng8b16bmstsw16x16: drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbtdrawtileng8b16bmsnt16x16 DetermineWindow drawtileng8b16bmsntmsw16x16, drawtileng8b16bmsntmw16x16, drawtileng8b16bmsntsw16x16 drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsntdrawtileng8b16bmsntmsw16x16: drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsntdrawtileng8b16bmsntmw16x16: drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbsdrawtileng8b16bmsntsw16x16: drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb;******************************************; 8x8 tiles - line by line engine;******************************************%macro drawline16bmacro 8 mov byte[tleftn],33%%loop mov cx,[vrama+eax] xor ecx,[ng16bprval] test ecx,2000h jnz near %%finline drawlineng16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8 ret%endmacro%macro drawline16bwmacro 9 WinClipMacro %%processwinclip2b drawlineng16b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b mov ebx,[ngcwinptr] mov cx,[vrama+eax] mov ebx,[ebx] xor ecx,[ng16bprval] mov [ngcpixleft],ebx test ecx,2000h jnz near %%finline drawlinengwin16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%9%%loop push eax mov ebx,[ngcwinptr] mov eax,[ngcpixleft] mov [ebx],eax pop eax cmp dword[ngcwinmode],1 je near .winclipped jmp .loop%endmacro%macro drawline16bw2macro 11 mov byte[tleftn],33 mov dword[ngcwinptr],ngwintable mov dword[ngcwinmode],0 cmp dword[ngwintable],0 jne near .loop add dword[ngcwinptr],4 mov dword[ngcwinmode],1.winclipped mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],8 jbe near %%processwinclip2b sub dword[ebx],8 xor ecx,[ng16bprval] test ecx,2000h jnz near .finlineb drawlineng16b %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%10,%11.loop mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],8 jbe near %%processwinclip2b sub dword[ebx],8 xor ecx,[ng16bprval] test ecx,2000h jnz near .finline drawlineng16b %1,%2,%3,.loop,.finline,%4,%5,%6,%7,%8%%processwinclip2b mov ebx,[ngcwinptr] mov cx,[vrama+eax] mov ebx,[ebx] xor ecx,[ng16bprval] mov [ngcpixleft],ebx test ecx,2000h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -