📄 newg162.asm
字号:
%endmacro
NEWSYM drawlineng16x84b16b
determinetransp drawlineng4b16bt16x8
drawlineng4b16bnt16x8
drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8b
drawlineng4b16bt16x8
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,procpixelstt16x8b
drawlineng4b16bms16x8:
test byte[scadtng+ebx],dl
jz near drawlineng4b16bmsnt16x8
drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8b
drawlineng4b16bmsnt16x8
drawline16bmacro16x8 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt16x8,procpixelstmsnt16x8,procpixelsmsnt16x8b,procpixelstmsnt16x8b
NEWSYM drawlineng16x82b16b
determinetransp drawlineng2b16bt16x8
drawlineng2b16bnt16x8
drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixels16x8,procpixelst16x8,procpixels16x8b,procpixelst16x8b
drawlineng2b16bt16x8
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,procpixelstt16x8b
drawlineng2b16bms16x8:
test byte[scadtng+ebx],dl
jz near drawlineng2b16bmsnt16x8
drawline16bmacro16x8 tltype2b,preparet2ba,cachesingle2bng,ngpalcon2b,test2ba,03h,procpixelsmst16x8,procpixelstmst16x8,procpixelsmst16x8b,procpixelstmst16x8b
drawlineng2b16bmsnt16x8
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
%endmacro
NEWSYM drawlinengom4b16b
determinetransp drawlineng4b16btom
drawlineng4b16bntom
CheckWindowing drawlineng4bwinom
drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelst
drawlineng4bwinom:
drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelst,procpixelstw
drawlineng4b16btom
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,procpixelstt
drawlineng4bwintom:
drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelstr,procpixelstt,procpixelstwt
drawlineng4b16bmsom:
test byte[scadtng+ebx],dl
jz near drawlineng4b16bmsntom
DetermineWindow drawlineng4b16bmstmswom, drawlineng4b16bmstmwom, drawlineng4b16bmstswom
drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst
drawlineng4b16bmstmswom:
drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmst
drawlineng4b16bmstmwom:
drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwsmt,procpixelss,procpixelsts
drawlineng4b16bmstswom:
drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst,procpixelstwmsbt,procpixelstr,procpixelstt
drawlineng4b16bmsntom
DetermineWindow drawlineng4b16bmsntmswom, drawlineng4b16bmsntmwom, drawlineng4b16bmsntswom
drawline16bmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt
drawlineng4b16bmsntmswom:
drawline16bwmacroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwmsnt
drawlineng4b16bmsntmwom:
drawline16bw2macroom tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt,procpixelstwsmnt,procpixelss,procpixelsts
drawlineng4b16bmsntswom:
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
%endmacro
NEWSYM drawlinengom16x164b16b
determinetransp drawlineng4b16btom16x16
drawlineng4b16bntom16x16
drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixels,procpixelst
drawlineng4b16btom16x16
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,procpixelstt
drawlineng4b16bmsom16x16:
test byte[scadtng+ebx],dl
jz near drawlineng4b16bmsntom16x16
drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmst,procpixelstmst
drawlineng4b16bmsntom16x16
drawline16bmacroom16x16 tltype4b,preparet4ba,cachesingle4bng,ngpalcon4b,test4ba,0Fh,procpixelsmsnt,procpixelstmsnt
NEWSYM NewG162AsmEnd
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -