Code optimisation

This commit is contained in:
pagefault
2001-09-08 01:47:12 +00:00
parent fbb72c7c27
commit 3244ae0b35
9 changed files with 191 additions and 126 deletions

View File

@@ -415,7 +415,8 @@ NEWSYM InitFxTables
mov [eax],edx mov [eax],edx
inc ebx inc ebx
add eax,4 add eax,4
loop .loopat dec ecx
jnz .loopat
; bit tables ; bit tables
mov eax,fxbit01 mov eax,fxbit01
mov ecx,256 mov ecx,256

View File

@@ -442,7 +442,8 @@ NEWSYM initSPC7110regs
add eax,10000h add eax,10000h
add ebx,4 add ebx,4
add edx,4 add edx,4
loop .mmaploop2 dec ecx
jnz .mmaploop2
pop eax pop eax
pop edx pop edx
pop ecx pop ecx
@@ -717,7 +718,8 @@ SPC4806w:
je .found je .found
.notfound .notfound
add eax,12 add eax,12
loop .loopc dec ecx
jnz .loopc
jmp .noentries jmp .noentries
.found .found
xor word[CurPtrLen],0FFFFh xor word[CurPtrLen],0FFFFh
@@ -733,7 +735,8 @@ SPC4806w:
mov [edx],al mov [edx],al
inc ebx inc ebx
inc edx inc edx
loop .loopb dec ecx
jnz .loopb
pop eax pop eax
mov ebx,[eax+4] mov ebx,[eax+4]
mov edx,[lastentry] mov edx,[lastentry]
@@ -781,7 +784,8 @@ SPC4806w:
mov [edx],bl mov [edx],bl
inc edx inc edx
shl eax,4 shl eax,4
loop .sploop2 dec ecx
jnz .sploop2
mov edx,SPC7110nfname mov edx,SPC7110nfname
call Open_File call Open_File
@@ -1692,7 +1696,8 @@ NEWSYM UpdateBanksSDD1
mov [ebx],eax mov [ebx],eax
add eax,8000h add eax,8000h
add ebx,4 add ebx,4
loop .mmaploop dec ecx
jnz .mmaploop
pop eax pop eax
add eax,[romdata] add eax,[romdata]
mov ecx,10h mov ecx,10h
@@ -1704,7 +1709,8 @@ NEWSYM UpdateBanksSDD1
add eax,10000h add eax,10000h
add ebx,4 add ebx,4
add edx,4 add edx,4
loop .mmaploop2 dec ecx
jnz .mmaploop2
pop eax pop eax
pop edx pop edx
pop ecx pop ecx
@@ -1737,7 +1743,8 @@ NEWSYM sa12223w
add eax,10000h add eax,10000h
add ebx,4 add ebx,4
add edx,4 add edx,4
loop .mmaploop2 dec ecx
jnz .mmaploop2
pop eax pop eax
pop edx pop edx
pop ecx pop ecx
@@ -2344,7 +2351,8 @@ executesa1dma:
mov [edx],al mov [edx],al
inc ebx inc ebx
inc edx inc edx
loop .loop dec ecx
jnz .loop
.notransfer .notransfer
pop ecx pop ecx
pop eax pop eax
@@ -2474,7 +2482,8 @@ sa1chconv:
mov [edx],al mov [edx],al
inc ebx inc ebx
inc edx inc edx
loop .next4b dec ecx
jnz .next4b
popad popad
ret ret
@@ -2539,7 +2548,8 @@ sa1chconv:
mov [edx],al mov [edx],al
inc ebx inc ebx
inc edx inc edx
loop .next dec ecx
jnz .next
popad popad
ret ret
@@ -2570,7 +2580,8 @@ NEWSYM initSA1regs
.loopr .loopr
mov [edi],eax mov [edi],eax
add edi,4 add edi,4
loop .loopr dec ecx
jnz .loopr
ret ret
NEWSYM initSA1regsw NEWSYM initSA1regsw
@@ -2636,7 +2647,8 @@ NEWSYM initSA1regsw
.loopw .loopw
mov [edi],eax mov [edi],eax
add edi,4 add edi,4
loop .loopw dec ecx
jnz .loopw
setregw 3000h*4,IRamWrite2 setregw 3000h*4,IRamWrite2
ret ret

View File

@@ -661,7 +661,6 @@ NEWSYM getstring
.nz .nz
mov [edi],al mov [edi],al
inc edi inc edi
; loop .nz
dec ecx dec ecx
jnz .nz jnz .nz
xor ebx,ebx xor ebx,ebx
@@ -714,7 +713,6 @@ NEWSYM getstring
dec esi dec esi
mov [es:edi],al mov [es:edi],al
sub edi,2 sub edi,2
; loop .okloop
dec ecx dec ecx
jnz .okloop jnz .okloop
inc bl inc bl
@@ -739,7 +737,6 @@ NEWSYM getstring
dec esi dec esi
mov [es:edi],al mov [es:edi],al
sub edi,2 sub edi,2
; loop .okloop2
dec ecx dec ecx
jnz .okloop2 jnz .okloop2
.noloop .noloop
@@ -780,7 +777,6 @@ NEWSYM modify
sub byte[wx],4 sub byte[wx],4
add byte[wx2],4 add byte[wx2],4
pop ecx pop ecx
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
push es push es
@@ -793,7 +789,6 @@ NEWSYM modify
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
mov edi,12*160+29*2 mov edi,12*160+29*2
@@ -803,7 +798,6 @@ NEWSYM modify
.loopc .loopc
lodsb lodsb
stosw stosw
; loop .loopc
dec ecx dec ecx
jnz .loopc jnz .loopc
mov edi,14*160+29*2 mov edi,14*160+29*2
@@ -813,7 +807,6 @@ NEWSYM modify
.loopd .loopd
lodsb lodsb
stosw stosw
; loop .loopd
dec ecx dec ecx
jnz .loopd jnz .loopd
; set cursor to (10,50) ; set cursor to (10,50)
@@ -961,7 +954,6 @@ NEWSYM SPCmodify
sub byte[wx],4 sub byte[wx],4
add byte[wx2],4 add byte[wx2],4
pop ecx pop ecx
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
push es push es
@@ -974,7 +966,6 @@ NEWSYM SPCmodify
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
mov edi,12*160+30*2 mov edi,12*160+30*2
@@ -984,7 +975,6 @@ NEWSYM SPCmodify
.loopc .loopc
lodsb lodsb
stosw stosw
; loop .loopc
dec ecx dec ecx
jnz .loopc jnz .loopc
mov edi,14*160+30*2 mov edi,14*160+30*2
@@ -994,7 +984,6 @@ NEWSYM SPCmodify
.loopd .loopd
lodsb lodsb
stosw stosw
; loop .loopd
dec ecx dec ecx
jnz .loopd jnz .loopd
; set cursor to (10,50) ; set cursor to (10,50)
@@ -1139,7 +1128,6 @@ NEWSYM SPCbreakpoint
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
; set cursor to (10,50) ; set cursor to (10,50)
@@ -1266,7 +1254,6 @@ NEWSYM breakpoint
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
; set cursor to (10,50) ; set cursor to (10,50)
@@ -1371,7 +1358,6 @@ NEWSYM trace
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
mov edi,12*160+52*2 mov edi,12*160+52*2
@@ -1462,7 +1448,6 @@ NEWSYM traceops
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
xor eax,eax xor eax,eax
@@ -1558,7 +1543,6 @@ NEWSYM SPCbreakops
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
xor eax,eax xor eax,eax
@@ -1656,7 +1640,6 @@ NEWSYM breakatsign
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
xor eax,eax xor eax,eax
@@ -1760,7 +1743,6 @@ NEWSYM breakatsignlog
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
@@ -2113,7 +2095,6 @@ NEWSYM breakops
.loopb .loopb
lodsb lodsb
stosw stosw
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
xor eax,eax xor eax,eax
@@ -3631,7 +3612,6 @@ SECTION .text
stosb stosb
pop ax pop ax
shl ax,4 shl ax,4
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
pop ecx pop ecx
@@ -3651,7 +3631,6 @@ SECTION .text
stosb stosb
pop ax pop ax
shl ax,4 shl ax,4
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
pop ecx pop ecx
@@ -3850,7 +3829,6 @@ NEWSYM showdd
.loopa .loopa
lodsb lodsb
stosw stosw
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
add edi,6 add edi,6
@@ -4234,7 +4212,6 @@ NEWSYM nextspcopcode
stosb stosb
pop ax pop ax
shl ax,4 shl ax,4
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
pop ecx pop ecx
@@ -4255,7 +4232,6 @@ NEWSYM nextspcopcode
stosb stosb
pop ax pop ax
shl ax,4 shl ax,4
; loop .loopb
dec ecx dec ecx
jnz .loopb jnz .loopb
pop ecx pop ecx

View File

@@ -596,7 +596,6 @@ NEWSYM Get_Dir
.noslash .noslash
mov [eax],dl mov [eax],dl
inc eax inc eax
; loop .loop
dec ecx dec ecx
jnz .loop jnz .loop
popad popad
@@ -1001,7 +1000,6 @@ NEWSYM vidpastecopyscr ; GUI screen render
mov bx,[GUICPC+ebx*2] mov bx,[GUICPC+ebx*2]
mov [eax+edx*2],bx mov [eax+edx*2],bx
dec edx dec edx
; loop .loop
dec ecx dec ecx
jnz .loop jnz .loop
.no16bconv .no16bconv

View File

@@ -178,7 +178,6 @@ NEWSYM GetCoords
jz .XAxis jz .XAxis
inc dword[JoyX] inc dword[JoyX]
inc dword[JoyY] inc dword[JoyY]
; loop .loopa
dec ecx dec ecx
jnz .loopa jnz .loopa
mov byte [JoyExists], 0 mov byte [JoyExists], 0
@@ -209,7 +208,6 @@ NEWSYM GetCoords
nop nop
inc dword[JoyX] inc dword[JoyX]
nop nop
; loop .XAxis
dec ecx dec ecx
jnz .XAxis jnz .XAxis
mov byte [JoyExists], 0 mov byte [JoyExists], 0

View File

@@ -141,7 +141,6 @@ NEWSYM ModemSendChar
in al,dx in al,dx
test al,00100000b test al,00100000b
jnz .transokay jnz .transokay
; loop .loop
dec ecx dec ecx
jnz .loop jnz .loop
xor al,al xor al,al

View File

@@ -143,7 +143,8 @@ NEWSYM init
.looppal .looppal
mov dword[eax],cpalval mov dword[eax],cpalval
add eax,4 add eax,4
loop .looppal dec ecx
jnz .looppal
; Initialize snow stuff ; Initialize snow stuff
mov ecx,400 mov ecx,400
@@ -156,7 +157,8 @@ NEWSYM init
or byte[SnowVelDist+edx],08h or byte[SnowVelDist+edx],08h
.skip .skip
inc edx inc edx
loop .snowloop dec ecx
jnz .snowloop
call BackupSystemVars call BackupSystemVars
@@ -180,7 +182,8 @@ NEWSYM init
mov [eax],dl mov [eax],dl
inc ebx inc ebx
inc eax inc eax
loop .rbackupl dec ecx
jnz .rbackupl
mov byte[virqnodisable],0 mov byte[virqnodisable],0
call clearmem call clearmem
call inittable call inittable
@@ -1930,7 +1933,8 @@ NEWSYM init65816
mov [edi],al mov [edi],al
inc esi inc esi
inc edi inc edi
loop .looprn dec ecx
jnz .looprn
mov dword[CSStatus+25],'NRM ' mov dword[CSStatus+25],'NRM '
cmp byte[SA1Enable],0 cmp byte[SA1Enable],0
je .nosa1 je .nosa1
@@ -2024,7 +2028,8 @@ NEWSYM init65816
.spc7110clear .spc7110clear
mov dword[eax],0 mov dword[eax],0
add eax,4 add eax,4
loop .spc7110clear dec ecx
jnz .spc7110clear
.nospc7110init .nospc7110init
mov byte[cycpb268],115 mov byte[cycpb268],115
mov byte[cycpb358],127 mov byte[cycpb358],127
@@ -2279,7 +2284,8 @@ NEWSYM init65816
inc ebx inc ebx
dec edi dec edi
jnz .loopbsx2 jnz .loopbsx2
loop .loopbsx dec ecx
jnz .loopbsx
.skipbsxmove .skipbsxmove
popad popad
.notbsx .notbsx
@@ -2420,13 +2426,15 @@ NEWSYM initsnes
.loopa .loopa
stosd stosd
add eax,8000h add eax,8000h
loop .loopa dec ecx
jnz .loopa
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov ecx,40h mov ecx,40h
.loopb .loopb
stosd stosd
add eax,8000h add eax,8000h
loop .loopb dec ecx
jnz .loopb
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
cmp byte[lorommapmode2],0 cmp byte[lorommapmode2],0
@@ -2438,7 +2446,8 @@ NEWSYM initsnes
.loopc .loopc
stosd stosd
add eax,8000h add eax,8000h
loop .loopc dec ecx
jnz .loopc
cmp byte[lorommapmode2],0 cmp byte[lorommapmode2],0
je .notlorommode2b je .notlorommode2b
sub eax,200000h sub eax,200000h
@@ -2447,13 +2456,15 @@ NEWSYM initsnes
.loopclr .loopclr
stosd stosd
add eax,8000h add eax,8000h
loop .loopclr dec ecx
jnz .loopclr
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov ecx,40h mov ecx,40h
.loopd .loopd
stosd stosd
add eax,8000h add eax,8000h
loop .loopd dec ecx
jnz .loopd
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2461,7 +2472,8 @@ NEWSYM initsnes
mov ecx,40h mov ecx,40h
.loopa2 .loopa2
stosd stosd
loop .loopa2 dec ecx
jnz .loopa2
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2469,13 +2481,15 @@ NEWSYM initsnes
.loopb2 .loopb2
stosd stosd
add eax,8000h add eax,8000h
loop .loopb2 dec ecx
jnz .loopb2
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc2 .loopc2
stosd stosd
loop .loopc2 dec ecx
jnz .loopc2
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2483,7 +2497,8 @@ NEWSYM initsnes
.loopd2 .loopd2
stosd stosd
add eax,8000h add eax,8000h
loop .loopd2 dec ecx
jnz .loopd2
; set bank 70 ; set bank 70
mov eax,[sram] mov eax,[sram]
xor ebx,ebx xor ebx,ebx
@@ -2513,13 +2528,15 @@ NEWSYM initsnes
.loopas .loopas
stosd stosd
add eax,8000h add eax,8000h
loop .loopas dec ecx
jnz .loopas
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov ecx,40h mov ecx,40h
.loopbs .loopbs
stosd stosd
add eax,8000h add eax,8000h
loop .loopbs dec ecx
jnz .loopbs
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
sub eax,8000h sub eax,8000h
@@ -2527,7 +2544,8 @@ NEWSYM initsnes
.loopcs .loopcs
stosd stosd
add eax,8000h add eax,8000h
loop .loopcs dec ecx
jnz .loopcs
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,8000h add eax,8000h
@@ -2535,7 +2553,8 @@ NEWSYM initsnes
.loopds .loopds
stosd stosd
add eax,8000h add eax,8000h
loop .loopds dec ecx
jnz .loopds
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2543,7 +2562,8 @@ NEWSYM initsnes
mov ecx,40h mov ecx,40h
.loopa2s .loopa2s
stosd stosd
loop .loopa2s dec ecx
jnz .loopa2s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2551,13 +2571,15 @@ NEWSYM initsnes
.loopb2s .loopb2s
stosd stosd
add eax,8000h add eax,8000h
loop .loopb2s dec ecx
jnz .loopb2s
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc2s .loopc2s
stosd stosd
loop .loopc2s dec ecx
jnz .loopc2s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,8000h add eax,8000h
@@ -2565,7 +2587,8 @@ NEWSYM initsnes
.loopd2s .loopd2s
stosd stosd
add eax,8000h add eax,8000h
loop .loopd2s dec ecx
jnz .loopd2s
; set bank 70 ; set bank 70
mov eax,[sram] mov eax,[sram]
xor ebx,ebx xor ebx,ebx
@@ -2616,7 +2639,8 @@ NEWSYM initsnes
.loopa3 .loopa3
stosd stosd
add eax,8000h add eax,8000h
loop .loopa3 dec ecx
jnz .loopa3
; set banks 40-6F (30h x 64KB ROM banks @ 8000h) ; set banks 40-6F (30h x 64KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
sub eax,8000h sub eax,8000h
@@ -2624,7 +2648,8 @@ NEWSYM initsnes
.loopb32 .loopb32
stosd stosd
add eax,8000h add eax,8000h
loop .loopb32 dec ecx
jnz .loopb32
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
sub eax,8000h sub eax,8000h
@@ -2632,7 +2657,8 @@ NEWSYM initsnes
.loopc3 .loopc3
stosd stosd
add eax,8000h add eax,8000h
loop .loopc3 dec ecx
jnz .loopc3
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2640,7 +2666,8 @@ NEWSYM initsnes
.loopd3 .loopd3
stosd stosd
add eax,10000h add eax,10000h
loop .loopd3 dec ecx
jnz .loopd3
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2648,7 +2675,8 @@ NEWSYM initsnes
mov ecx,40h mov ecx,40h
.loopa23 .loopa23
stosd stosd
loop .loopa23 dec ecx
jnz .loopa23
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,100000h add eax,100000h
@@ -2656,13 +2684,15 @@ NEWSYM initsnes
.loopb3 .loopb3
stosd stosd
add eax,8000h add eax,8000h
loop .loopb3 dec ecx
jnz .loopb3
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc23 .loopc23
stosd stosd
loop .loopc23 dec ecx
jnz .loopc23
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2670,7 +2700,8 @@ NEWSYM initsnes
.loopd23 .loopd23
stosd stosd
add eax,10000h add eax,10000h
loop .loopd23 dec ecx
jnz .loopd23
; set bank 70 ; set bank 70
mov eax,[sram] mov eax,[sram]
xor ebx,ebx xor ebx,ebx
@@ -2700,28 +2731,32 @@ NEWSYM initsnes
.loopab .loopab
stosd stosd
add eax,10000h add eax,10000h
loop .loopab dec ecx
jnz .loopab
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
mov ecx,40h mov ecx,40h
.loopbb .loopbb
stosd stosd
add eax,10000h add eax,10000h
loop .loopbb dec ecx
jnz .loopbb
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
mov ecx,40h mov ecx,40h
.loopcb .loopcb
stosd stosd
add eax,10000h add eax,10000h
loop .loopcb dec ecx
jnz .loopcb
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
mov ecx,40h mov ecx,40h
.loopdb .loopdb
stosd stosd
add eax,10000h add eax,10000h
loop .loopdb dec ecx
jnz .loopdb
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2729,27 +2764,31 @@ NEWSYM initsnes
mov ecx,40h mov ecx,40h
.loopa2b .loopa2b
stosd stosd
loop .loopa2b dec ecx
jnz .loopa2b
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
mov cx,40h mov cx,40h
.loopb2b .loopb2b
stosd stosd
add eax,10000h add eax,10000h
loop .loopb2b dec ecx
jnz .loopb2b
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov cx,40h mov cx,40h
.loopc2b .loopc2b
stosd stosd
loop .loopc2b dec ecx
jnz .loopc2b
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
mov cx,40h mov cx,40h
.loopd2b .loopd2b
stosd stosd
add eax,10000h add eax,10000h
loop .loopd2b dec ecx
jnz .loopd2b
; set bank 70 ; set bank 70
mov eax,[sram] mov eax,[sram]
xor ebx,ebx xor ebx,ebx
@@ -2785,7 +2824,8 @@ NEWSYM initsnes
.loopa3s .loopa3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopa3s dec ecx
jnz .loopa3s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
; add eax,200000h ; add eax,200000h
@@ -2794,7 +2834,8 @@ NEWSYM initsnes
.loopb3s .loopb3s
stosd stosd
add eax,20000h add eax,20000h
loop .loopb3s dec ecx
jnz .loopb3s
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
; sub eax,8000h ; sub eax,8000h
@@ -2802,7 +2843,8 @@ NEWSYM initsnes
.loopc3s .loopc3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopc3s dec ecx
jnz .loopc3s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
; add eax,200000h ; add eax,200000h
@@ -2811,7 +2853,8 @@ NEWSYM initsnes
.loopd3s .loopd3s
stosd stosd
add eax,20000h add eax,20000h
loop .loopd3s dec ecx
jnz .loopd3s
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2819,7 +2862,8 @@ NEWSYM initsnes
mov ecx,40h mov ecx,40h
.loopa23s .loopa23s
stosd stosd
loop .loopa23s dec ecx
jnz .loopa23s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,8000h add eax,8000h
@@ -2827,13 +2871,15 @@ NEWSYM initsnes
.loopb23s .loopb23s
stosd stosd
add eax,20000h add eax,20000h
loop .loopb23s dec ecx
jnz .loopb23s
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc23s .loopc23s
stosd stosd
loop .loopc23s dec ecx
jnz .loopc23s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,8000h add eax,8000h
@@ -2841,7 +2887,8 @@ NEWSYM initsnes
.loopd23s .loopd23s
stosd stosd
add eax,20000h add eax,20000h
loop .loopd23s dec ecx
jnz .loopd23s
; set bank 70 ; set bank 70
mov eax,[sram] mov eax,[sram]
mov [snesmap2+78h*4],eax mov [snesmap2+78h*4],eax
@@ -2881,7 +2928,8 @@ SA1memmap:
.loopa3s .loopa3s
stosd stosd
add eax,8000h add eax,8000h
loop .loopa3s dec ecx
jnz .loopa3s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
; add eax,400000h ; add eax,400000h
@@ -2889,7 +2937,8 @@ SA1memmap:
.loopb3s .loopb3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopb3s dec ecx
jnz .loopb3s
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
add eax,200000h add eax,200000h
@@ -2898,7 +2947,8 @@ SA1memmap:
.loopc3s .loopc3s
stosd stosd
add eax,8000h add eax,8000h
loop .loopc3s dec ecx
jnz .loopc3s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,00000h add eax,00000h
@@ -2906,7 +2956,8 @@ SA1memmap:
.loopd3s .loopd3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopd3s dec ecx
jnz .loopd3s
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2914,7 +2965,8 @@ SA1memmap:
mov ecx,40h mov ecx,40h
.loopa23s .loopa23s
stosd stosd
loop .loopa23s dec ecx
jnz .loopa23s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,400000h add eax,400000h
@@ -2922,13 +2974,15 @@ SA1memmap:
.loopb23s .loopb23s
stosd stosd
add eax,10000h add eax,10000h
loop .loopb23s dec ecx
jnz .loopb23s
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc23s .loopc23s
stosd stosd
loop .loopc23s dec ecx
jnz .loopc23s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,00000h add eax,00000h
@@ -2936,7 +2990,8 @@ SA1memmap:
.loopd23s .loopd23s
stosd stosd
add eax,10000h add eax,10000h
loop .loopd23s dec ecx
jnz .loopd23s
; set bank 7E ; set bank 7E
mov eax,[wramdata] mov eax,[wramdata]
mov [snesmmap+7Eh*4],eax mov [snesmmap+7Eh*4],eax
@@ -2963,7 +3018,8 @@ SDD1memmap:
.loopa3s .loopa3s
stosd stosd
add eax,8000h add eax,8000h
loop .loopa3s dec ecx
jnz .loopa3s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
; add eax,400000h ; add eax,400000h
@@ -2971,7 +3027,8 @@ SDD1memmap:
.loopb3s .loopb3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopb3s dec ecx
jnz .loopb3s
; set banks 80-BF (40h x 32KB ROM banks @ 8000h) ; set banks 80-BF (40h x 32KB ROM banks @ 8000h)
mov eax,[romdata] mov eax,[romdata]
; add eax,200000h ; add eax,200000h
@@ -2980,7 +3037,8 @@ SDD1memmap:
.loopc3s .loopc3s
stosd stosd
add eax,8000h add eax,8000h
loop .loopc3s dec ecx
jnz .loopc3s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,00000h add eax,00000h
@@ -2988,7 +3046,8 @@ SDD1memmap:
.loopd3s .loopd3s
stosd stosd
add eax,10000h add eax,10000h
loop .loopd3s dec ecx
jnz .loopd3s
; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h) ; set addresses 0000-7FFF (01h x 32KB WRAM @ 0000h)
; set banks 00-3F ; set banks 00-3F
mov edi,snesmap2 mov edi,snesmap2
@@ -2996,7 +3055,8 @@ SDD1memmap:
mov ecx,40h mov ecx,40h
.loopa23s .loopa23s
stosd stosd
loop .loopa23s dec ecx
jnz .loopa23s
; set banks 40-6F (30h x 64KB ROM banks @ 0000h) ; set banks 40-6F (30h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,400000h add eax,400000h
@@ -3004,13 +3064,15 @@ SDD1memmap:
.loopb23s .loopb23s
stosd stosd
add eax,10000h add eax,10000h
loop .loopb23s dec ecx
jnz .loopb23s
; set banks 80-BF (01h x 32KB WRAM @ 0000h) ; set banks 80-BF (01h x 32KB WRAM @ 0000h)
mov eax,[wramdata] mov eax,[wramdata]
mov ecx,40h mov ecx,40h
.loopc23s .loopc23s
stosd stosd
loop .loopc23s dec ecx
jnz .loopc23s
; set banks C0-FF (40h x 64KB ROM banks @ 0000h) ; set banks C0-FF (40h x 64KB ROM banks @ 0000h)
mov eax,[romdata] mov eax,[romdata]
add eax,00000h add eax,00000h
@@ -3018,7 +3080,8 @@ SDD1memmap:
.loopd23s .loopd23s
stosd stosd
add eax,10000h add eax,10000h
loop .loopd23s dec ecx
jnz .loopd23s
; set bank 7E ; set bank 7E
mov eax,[wramdata] mov eax,[wramdata]
mov [snesmmap+7Eh*4],eax mov [snesmmap+7Eh*4],eax
@@ -3082,7 +3145,8 @@ UnInterleave48mbit:
mov [esi+40h],al mov [esi+40h],al
inc al inc al
inc esi inc esi
loop .loop dec ecx
jnz .loop
mov esi,mode7tab+256 mov esi,mode7tab+256
mov ecx,40h mov ecx,40h
mov al,40h+1 mov al,40h+1
@@ -3090,7 +3154,8 @@ UnInterleave48mbit:
mov [esi+80h],al mov [esi+80h],al
add al,2 add al,2
inc esi inc esi
loop .loop2 dec ecx
jnz .loop2
mov esi,mode7tab+256 mov esi,mode7tab+256
mov ecx,20h mov ecx,20h
mov al,40h mov al,40h
@@ -3100,7 +3165,8 @@ UnInterleave48mbit:
mov [esi],al mov [esi],al
add al,2 add al,2
inc esi inc esi
loop .loop3 dec ecx
jnz .loop3
call SwapTable256 call SwapTable256
popad popad
ret ret
@@ -3233,7 +3299,8 @@ NEWSYM preparesfx
mov [edi+32768],al mov [edi+32768],al
inc esi inc esi
inc edi inc edi
loop .swaploop dec ecx
jnz .swaploop
sub edi,65536+32768 sub edi,65536+32768
sub esi,65536 sub esi,65536
dec dl dec dl
@@ -3474,7 +3541,8 @@ NEWSYM printhex
call Output_Text call Output_Text
pop ax pop ax
shl ax,4 shl ax,4
loop .loopa dec ecx
jnz .loopa
ret ret
.hexdat db '0123456789ABCDEF' .hexdat db '0123456789ABCDEF'
@@ -3492,7 +3560,8 @@ NEWSYM printhex8
call Output_Text call Output_Text
pop ax pop ax
shl ax,4 shl ax,4
loop .loopb dec ecx
jnz .loopb
ret ret
.hexdat db '0123456789ABCDEF' .hexdat db '0123456789ABCDEF'
@@ -4055,7 +4124,8 @@ ZipDeleteRecurse:
mov [esi],al mov [esi],al
inc edi inc edi
inc esi inc esi
loop .loop dec ecx
jnz .loop
mov edx,DTALoc+1Eh mov edx,DTALoc+1Eh
call Change_Single_Dir call Change_Single_Dir
@@ -4217,7 +4287,8 @@ NEWSYM SPC7110Load
.sdd1loop .sdd1loop
add [eax+4],ebx add [eax+4],ebx
add eax,12 add eax,12
loop .sdd1loop dec ecx
jnz .sdd1loop
pop ebx pop ebx
.notfoundb .notfoundb
call Close_File call Close_File
@@ -4334,7 +4405,8 @@ NEWSYM SPC7110Load
jmp .foundaddr jmp .foundaddr
.notaddress .notaddress
add edx,12 add edx,12
loop .patloop dec ecx
jnz .patloop
; not found ; not found
pushad pushad
mov edx,[SPC7110CPtr2] mov edx,[SPC7110CPtr2]
@@ -4362,7 +4434,8 @@ NEWSYM SPC7110Load
.sdd1loopb .sdd1loopb
sub [eax+4],ebx sub [eax+4],ebx
add eax,12 add eax,12
loop .sdd1loopb dec ecx
jnz .sdd1loopb
mov edx,SDD1ifname mov edx,SDD1ifname
call Create_File call Create_File
@@ -4390,7 +4463,8 @@ NEWSYM SPC7110Load
.sdd1loopc .sdd1loopc
add [eax+4],ebx add [eax+4],ebx
add eax,12 add eax,12
loop .sdd1loopc dec ecx
jnz .sdd1loopc
.nosavedatafile .nosavedatafile
mov edx,PrevDir mov edx,PrevDir
@@ -4865,7 +4939,8 @@ NEWSYM loadfileGUI
popad popad
.no .no
add esi,8000h add esi,8000h
loop .loopcheck dec ecx
jnz .loopcheck
.skipall .skipall
; mirror image ; mirror image
@@ -5147,7 +5222,8 @@ NEWSYM showinfo
lodsb lodsb
mov dl,al mov dl,al
call Output_Text call Output_Text
loop .loopa dec ecx
jnz .loopa
mov edx,.ret mov edx,.ret
mov ah,9 mov ah,9
call Output_Text call Output_Text
@@ -5242,7 +5318,8 @@ NEWSYM showinfo
mov dl,al mov dl,al
mov ah,2 mov ah,2
call Output_Text call Output_Text
loop .loopb dec ecx
jnz .loopb
inc esi inc esi
mov edx,.ret mov edx,.ret
@@ -5664,7 +5741,8 @@ NEWSYM CheckROMType
inc al inc al
.noletter .noletter
inc esi inc esi
loop .nextletter dec ecx
jnz .nextletter
cmp al,12 cmp al,12
jna .checkhiromletter jna .checkhiromletter
mov byte[romtype],1 mov byte[romtype],1
@@ -5693,7 +5771,8 @@ NEWSYM CheckROMType
inc al inc al
.noletterb .noletterb
inc esi inc esi
loop .nextletterb dec ecx
jnz .nextletterb
cmp al,12 cmp al,12
jna .notfound jna .notfound
mov byte[romtype],2 mov byte[romtype],2

View File

@@ -1122,7 +1122,8 @@ NEWSYM converthex
mov [esi],dl mov [esi],dl
inc esi inc esi
shl eax,4 shl eax,4
loop .loopb dec ecx
jnz .loopb
mov byte[esi],0 mov byte[esi],0
ret ret
@@ -1177,7 +1178,8 @@ NEWSYM makeextension
mov [fnamest+ebx],al mov [fnamest+ebx],al
inc ebx inc ebx
inc ah inc ah
loop .loopc dec ecx
jnz .loopc
; find for '.' or '\' ; find for '.' or '\'
mov cl,dl mov cl,dl
mov edx,ebx mov edx,ebx

View File

@@ -2318,7 +2318,7 @@ NEWSYM ConvertToAFormat
movq [esi],mm0 movq [esi],mm0
add esi,8 add esi,8
dec ecx dec ecx
loop .crgbloop2m jnz .crgbloop2m
add esi,64 add esi,64
dec dl dec dl
jnz .crgbloopm jnz .crgbloopm