📄 newg162.asm
字号:
drawtile16bw2 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb
NEWSYM drawtileng8b16b
mov ebp,[cpalval+ebx*4]
determinetransp drawtileng8b16bt
drawtileng8b16bnt
CheckWindowing drawtileng8bwin
drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalb
drawtileng8bwin:
drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwb
drawtileng8b16bt
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,tilenormalbt
drawtileng8bwint:
drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0Fh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbt
drawtileng8b16bms:
test byte[scadtng+ebx],dl
jz near drawtileng8b16bmsnt
DetermineWindow drawtileng8b16bmstmsw, drawtileng8b16bmstmw, drawtileng8b16bmstsw
drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst
drawtileng8b16bmstmsw:
drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmst
drawtileng8b16bmstmw:
drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbs
drawtileng8b16bmstsw:
drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbt
drawtileng8b16bmsnt
DetermineWindow drawtileng8b16bmsntmsw, drawtileng8b16bmsntmw, drawtileng8b16bmsntsw
drawtile16b tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt
drawtileng8b16bmsntmsw:
drawtile16bw tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsnt
drawtileng8b16bmsntmw:
drawtile16bw2 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbs
drawtileng8b16bmsntsw:
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
%endmacro
NEWSYM drawtileng16x162b16b
mov ebp,[cpalval+ebx*4]
determinetransp drawtileng2b16bt16x16
drawtileng2b16bnt16x16
CheckWindowing drawtileng2bwin16x16
drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalb
drawtileng2bwin16x16:
drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwb
drawtileng2b16bt16x16
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,tilenormalbt
drawtileng2bwint16x16:
drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbt
drawtileng2b16bms16x16:
test byte[scadtng+ebx],dl
jz near drawtileng2b16bmsnt16x16
DetermineWindow drawtileng2b16bmstmsw16x16, drawtileng2b16bmstmw16x16, drawtileng2b16bmstsw16x16
drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst
drawtileng2b16bmstmsw16x16:
drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmst
drawtileng2b16bmstmw16x16:
drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbs
drawtileng2b16bmstsw16x16:
drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbt
drawtileng2b16bmsnt16x16
DetermineWindow drawtileng2b16bmsntmsw16x16, drawtileng2b16bmsntmw16x16, drawtileng2b16bmsntsw16x16
drawtile16b16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt
drawtileng2b16bmsntmsw16x16:
drawtile16bw16x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsnt
drawtileng2b16bmsntmw16x16:
drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbs
drawtileng2b16bmsntsw16x16:
drawtile16bw216x16 tltype2b, preparet2batile, cachesingle2bng,ngpalcon2b,test2ba,03h,vidmemch2s,cache2b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb
NEWSYM drawtileng16x164b16b
mov ebp,[cpalval+ebx*4]
determinetransp drawtileng4b16bt16x16
drawtileng4b16bnt16x16
CheckWindowing drawtileng4bwin16x16
drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalb
drawtileng4bwin16x16:
drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwb
drawtileng4b16bt16x16
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,tilenormalbt
drawtileng4bwint16x16:
drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbt
drawtileng4b16bms16x16:
test byte[scadtng+ebx],dl
jz near drawtileng4b16bmsnt16x16
DetermineWindow drawtileng4b16bmstmsw16x16, drawtileng4b16bmstmw16x16, drawtileng4b16bmstsw16x16
drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst
drawtileng4b16bmstmsw16x16:
drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmst
drawtileng4b16bmstmw16x16:
drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbs
drawtileng4b16bmstsw16x16:
drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbt
drawtileng4b16bmsnt16x16
DetermineWindow drawtileng4b16bmsntmsw16x16, drawtileng4b16bmsntmw16x16, drawtileng4b16bmsntsw16x16
drawtile16b16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt
drawtileng4b16bmsntmsw16x16:
drawtile16bw16x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsnt
drawtileng4b16bmsntmw16x16:
drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbs
drawtileng4b16bmsntsw16x16:
drawtile16bw216x16 tltype4b, preparet4batile, cachesingle4bng,ngpalcon4b,test4ba,0Fh,vidmemch4s,cache4b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsbnt,tilenormalwbmsbnt,tilenormal,tilenormalb
NEWSYM drawtileng16x168b16b
mov ebp,[cpalval+ebx*4]
determinetransp drawtileng8b16bt16x16
drawtileng8b16bnt16x16
CheckWindowing drawtileng8bwin16x16
drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalb
drawtileng8bwin16x16:
drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormal,tilenormalb,tilenormalw,tilenormalwb
drawtileng8b16bt16x16
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,tilenormalbt
drawtileng8bwint16x16:
drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalt,tilenormalbt,tilenormalwt,tilenormalwbt
drawtileng8b16bms16x16:
test byte[scadtng+ebx],dl
jz near drawtileng8b16bmsnt16x16
DetermineWindow drawtileng8b16bmstmsw16x16, drawtileng8b16bmstmw16x16, drawtileng8b16bmstsw16x16
drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst
drawtileng8b16bmstmsw16x16:
drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmst,tilenormalwbmst
drawtileng8b16bmstmw16x16:
drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwsmt,tilenormalwbsmt,tilenormals,tilenormalbs
drawtileng8b16bmstsw16x16:
drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmst,tilenormalbmst,tilenormalwmsbt,tilenormalwbmsbt,tilenormalt,tilenormalbt
drawtileng8b16bmsnt16x16
DetermineWindow drawtileng8b16bmsntmsw16x16, drawtileng8b16bmsntmw16x16, drawtileng8b16bmsntsw16x16
drawtile16b16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt
drawtileng8b16bmsntmsw16x16:
drawtile16bw16x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwmsnt,tilenormalwbmsnt
drawtileng8b16bmsntmw16x16:
drawtile16bw216x16 tltype8b, preparet8batile, cachesingle8bng,ngpalcon8b,test8ba,0FFh,vidmemch8s,cache8b16b,tilenormalmsnt,tilenormalbmsnt,tilenormalwsmnt,tilenormalwbsmnt,tilenormals,tilenormalbs
drawtileng8b16bmsntsw16x16:
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 + -