📄 newg162.asm
字号:
drawlineng16x816b %1,%2,%3,%%loopb,%%finlineb,%4,%5,%6,%9,%10 ret%endmacroNEWSYM drawlineng16x84b16b determinetransp drawlineng4b16bt16x8drawlineng4b16bnt16x8 drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8bdrawlineng4b16bt16x8 test byte[BGMS1+ebx*2+1],dl jnz near drawlineng4b16bms16x8 test byte[scadtng+ebx],dl jz near drawlineng4b16bnt16x8 drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr16x8,procpixelstt16x8,procpixelstr16x8b,procpixelstt16x8bdrawlineng4b16bms16x8: test byte[scadtng+ebx],dl jz near drawlineng4b16bmsnt16x8 drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8bdrawlineng4b16bmsnt16x8 drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt16x8,procpixelstmsnt16x8,procpixelsmsnt16x8b,procpixelstmsnt16x8bNEWSYM drawlineng16x82b16b determinetransp drawlineng2b16bt16x8drawlineng2b16bnt16x8 drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8bdrawlineng2b16bt16x8 test byte[BGMS1+ebx*2+1],dl jnz near drawlineng2b16bms16x8 test byte[scadtng+ebx],dl jz near drawlineng2b16bnt16x8 drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelstr16x8,procpixelstt16x8,procpixelstr16x8b,procpixelstt16x8bdrawlineng2b16bms16x8: test byte[scadtng+ebx],dl jz near drawlineng2b16bmsnt16x8 drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8bdrawlineng2b16bmsnt16x8 drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelsmsnt16x8,procpixelstmsnt16x8,procpixelsmsnt16x8b,procpixelstmsnt16x8b%macro WinClipMacroom 1 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] cmp dword[ebx],8 jbe near %1 sub dword[ebx],8 mov ebx,[cbgval] add word[ofsmmptr],2 inc dword[bg1totng+ebx*4] add word[ofsmtptr],2 mov ax,[ofsmmptr] mov ebx,[yposngom] mov edx,[flipyposngom] mov [yposng],ebx mov [flipyposng],edx add edi,16 test eax,03Fh jnz .next mov bx,[bgtxadd] add ax,bx add [ofsmmptr],bx add word[ofsmtptr],bx.next mov ebx,[ofsmcptr] add ebx,[ofsmcptr2] mov ecx,[ofsmval] add dword[ofshvaladd],8 test dword[ebx],ecx jz .noofsm2 mov ebx,[ebx] mov ax,[ofsmtptr] and ebx,3FFh add ebx,[ofsmcyps] test ebx,100h jz .noupper2 add ax,[ofsmady].noupper2 and ebx,0FFh mov edx,ebx shr ebx,3 and edx,07h shl ebx,6 shl edx,3 add ax,bx mov [yposng],edx xor edx,38h mov [flipyposng],edx.noofsm2 mov ebx,[ofsmcptr] add ebx,[ofsmcptr2] add dword[ofsmcptr2],2 mov ecx,[ofsmvalh] and dword[ofsmcptr2],3Fh test dword[ebx-40h],ecx jz .noofsmh mov ebx,[ebx-40h] sub ax,[ofsmtptr] add ax,[ofsmtptrs] add ebx,[ofshvaladd] test ebx,100h jz .noleft add ax,[ofsmadx].noleft and ebx,0F8h shr ebx,2 add ax,bx.noofsmh dec byte[tleftn] jnz near .winclipped pop ebx cmp byte[curmosaicsz],1 jne near domosaicng16b ret.loop mov ebx,[ngcwinptr] mov cx,[vrama+eax] cmp dword[ebx],8 jbe near %1 sub dword[ebx],8 xor ecx,[ng16bprval] test ecx,2000h jnz near .finline%endmacro%macro drawline16bmacroom 8 mov byte[tleftn],33%%loop mov cx,[vrama+eax] xor ecx,[ng16bprval] test ecx,2000h jnz near %%finline drawlinengom16b %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8 ret%endmacro%macro drawline16bwmacroom 9 WinClipMacroom %%processwinclip2b drawlinengom16b %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 drawlinengomwin16b %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 drawline16bw2macroom 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 drawlinengom16b %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 drawlinengom16b %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 drawlinengomwin16b %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%endmacroNEWSYM drawlinengom4b16b determinetransp drawlineng4b16btomdrawlineng4b16bntom CheckWindowing drawlineng4bwinom drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelstdrawlineng4bwinom: drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelst,procpixelstwdrawlineng4b16btom test byte[BGMS1+ebx*2+1],dl jnz near drawlineng4b16bmsom test byte[scadtng+ebx],dl jz near drawlineng4b16bntom CheckWindowing drawlineng4bwintom drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelsttdrawlineng4bwintom: drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelstt,procpixelstwtdrawlineng4b16bmsom: test byte[scadtng+ebx],dl jz near drawlineng4b16bmsntom DetermineWindow drawlineng4b16bmstmswom, drawlineng4b16bmstmwom, drawlineng4b16bmstswom drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmstdrawlineng4b16bmstmswom: drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmstdrawlineng4b16bmstmwom: drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwsmt,procpixelss,procpixelstsdrawlineng4b16bmstswom: drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmsbt,procpixelstr,procpixelsttdrawlineng4b16bmsntom DetermineWindow drawlineng4b16bmsntmswom, drawlineng4b16bmsntmwom, drawlineng4b16bmsntswom drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsntdrawlineng4b16bmsntmswom: drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwmsntdrawlineng4b16bmsntmwom: drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwsmnt,procpixelss,procpixelstsdrawlineng4b16bmsntswom: drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwmsbnt,procpixelsnt,procpixelstnt%macro drawline16bmacroom16x16 8 mov byte[tleftn],17%%loop mov cx,[vrama+eax] xor ecx,[ng16bprval] test ecx,2000h jnz near %%finline drawlinengom16b16x16 %1,%2,%3,%%loop,%%finline,%4,%5,%6,%7,%8 ret%endmacro%macro drawline16bwmacroom16x16 9 WinClipMacro16x16 %%processwinclip2b drawlinengom16b16x16 %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 drawlinengomwin16b16x16 %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 drawline16bw2macroom16x16 11 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 drawlinengom16b16x16 %1,%2,%3,.winclipped,.finlineb,%4,%5,%6,%10,%11.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 drawlinengom16b16x16 %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 drawlinengomwin16b16x16 %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%endmacroNEWSYM drawlinengom16x164b16b determinetransp drawlineng4b16btom16x16drawlineng4b16bntom16x16 drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelstdrawlineng4b16btom16x16 test byte[BGMS1+ebx*2+1],dl jnz near drawlineng4b16bmsom16x16 test byte[scadtng+ebx],dl jz near drawlineng4b16bntom16x16 drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelsttdrawlineng4b16bmsom16x16: test byte[scadtng+ebx],dl jz near drawlineng4b16bmsntom16x16 drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmstdrawlineng4b16bmsntom16x16 drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -