Replaced all the slow 'loop' instructions.

This commit is contained in:
stainless
2001-09-08 02:28:25 +00:00
parent 8880dcfb68
commit 6dc7a5c5d5
10 changed files with 248 additions and 82 deletions

View File

@@ -774,7 +774,9 @@ clearsram:
.loop
mov byte[eax],0FFh
inc eax
loop .loop
; loop .loop
dec ecx
jnz .loop
cmp byte[SFXSRAM],0
je .nosfxsram
mov eax,[sfxramdata]
@@ -782,7 +784,9 @@ clearsram:
.loop2
mov byte[eax],0FFh
inc eax
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
.nosfxsram
cmp byte[SA1Enable],1
jne .nosa1
@@ -791,7 +795,9 @@ clearsram:
.loop3
mov byte[eax],0FFh
inc eax
loop .loop3
; loop .loop3
dec ecx
jnz .loop3
.nosa1
pop ecx
pop eax
@@ -886,7 +892,9 @@ CalcChecksum:
mov bl,[eax]
add edx,ebx
inc eax
loop .loop
; loop .loop
dec ecx
jnz .loop
mov ebx,edx
xor bx,1011001011101101b
xor eax,eax
@@ -1020,7 +1028,9 @@ NEWSYM ExecGUISaveVars
.loopa
mov [esi],al
inc esi
loop .loopa
; loop .loopa
dec ecx
jnz .loopa
%endmacro
%macro GUIDeInitIRQs 0
@@ -1288,7 +1298,9 @@ DrawSnow:
.transp
inc esi
inc edx
loop .sloop
; loop .sloop
dec ecx
jnz .sloop
add esi,272
dec ebx
jnz .sloop2
@@ -1315,7 +1327,9 @@ DrawSnow:
mov byte[esi+eax],bl
.nosnow
inc edx
loop .loop
; loop .loop
dec ecx
jnz .loop
; Change Snow Displacement Values
.next
cmp dword[SnowMover],0
@@ -1377,7 +1391,9 @@ ProcessSnowVelocity:
or byte[SnowVelDist+edx*2],8
.nosdata
inc edx
loop .loop
; loop .loop
dec ecx
jnz .loop
ret
OkaySC db 0
@@ -1530,7 +1546,9 @@ NEWSYM StartGUI
.slloop
mov dword[eax],0
add eax,4
loop .slloop
; loop .slloop
dec ecx
jnz .slloop
cmp byte[OldWinPos],0
jne .okayow
xor esi,esi
@@ -1541,7 +1559,9 @@ NEWSYM StartGUI
mov eax,[GUIwinposy2+esi*4]
mov [GUIwinposy+esi*4],eax
inc esi
loop .nextow
; loop .nextow
dec ecx
jnz .nextow
mov byte[OldWinPos],1
mov eax,[pl1p209b]
mov [pl1p209],eax
@@ -1588,6 +1608,8 @@ NEWSYM StartGUI
inc eax
dec bl
jnz .convlfnlp2b
; loop .convlfnlp
dec ecx
loop .convlfnlp
.noconvertlfqm
@@ -1643,7 +1665,9 @@ NEWSYM StartGUI
.loop
mov dword[eax],0
add eax,4
loop .loop
; loop .loop
dec ecx
jnz .loop
.nong
mov byte[ShowTimer],1
call Get_Date
@@ -1700,7 +1724,9 @@ NEWSYM StartGUI
.pclear
mov dword[esi],0
add esi,4
loop .pclear
; loop .pclear
dec ecx
jnz .pclear
mov byte[pressed+1],2
mov byte[GUIescpress],1
@@ -2278,7 +2304,9 @@ NEWSYM StartGUI
.loop20
mov byte[eax],0
inc eax
loop .loop20
; loop .loop20
dec ecx
jnz .loop20
mov al,[Latency]
mov [LatencyLeft],al
mov byte[NetSwap],0
@@ -2297,7 +2325,9 @@ NEWSYM StartGUI
add al,[ebx]
adc ah,0
inc ebx
loop .csumloop
; loop .csumloop
dec ecx
jnz .csumloop
.nocsumloop
mov [CheckSumVal],eax
@@ -2406,7 +2436,9 @@ NEWSYM StartGUI
mov [eax],edx
add ebx,4
add eax,4
loop .loopcr
; loop .loopcr
dec ecx
jnz .loopcr
.nocopyram
cmp byte[CheatWinMode],2
@@ -2438,7 +2470,9 @@ NEWSYM StartGUI
.loopcl
mov dword[eax],0
add eax,4
loop .loopcl
; loop .loopcl
dec ecx
jnz .loopcl
mov al,[cfgsoundon]
mov [soundon],al
@@ -2488,7 +2522,9 @@ guifirsttimemsg:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
mov byte[pressed+2Ch],0
.again
GUIBox 43,75,213,163,160
@@ -2555,7 +2591,9 @@ guimustrestartmsg:
mov byte[pressed+ebx],2
.npr1
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
mov byte[pressed+2Ch],0
.again
GUIBox 43,87,213,151,160
@@ -2588,7 +2626,9 @@ guimustrestartmsg:
cmp byte[pressed+ebx],1
je .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
jmp .again
.pressedokay
.again2
@@ -2620,7 +2660,9 @@ guiprevideo:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
@@ -2653,7 +2695,9 @@ guiprevideo:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
cmp byte[MouseDis],1
je .mousedis
call Get_MouseData
@@ -2692,14 +2736,18 @@ guipostvideo:
.loop
mov dword[eax],0FFFFFFFFh
add eax,4
loop .loop
; loop .loop
dec ecx
jnz .loop
xor ebx,ebx
mov ecx,256
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
mov dword[GUIkeydelay],36*10
.pressedfail
@@ -2725,7 +2773,9 @@ guipostvideo:
cmp byte[pressed+ebx],0
jne near .pressedfail
inc ebx
loop .b2
; loop .b2
dec ecx
jnz .b2
cmp byte[MouseDis],1
je .mousedis3
call Get_MouseData
@@ -2741,7 +2791,9 @@ guipostvideo:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
cmp byte[MouseDis],1
je .mousedis
call Get_MouseData
@@ -2830,7 +2882,9 @@ guipostvideofail:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu

View File

@@ -106,7 +106,9 @@ AddCSCheatCode:
inc eax
%%noinceax
rol dl,1
loop %%searchloop
; loop %%searchloop
dec ecx
jnz %%searchloop
%endmacro
%macro SearchMacroB 1
@@ -183,7 +185,9 @@ CheatCodeSearchProcess:
rol bl,1
rol bh,1
inc esi
loop .exactloop
; loop .exactloop
dec ecx
jnz .exactloop
; CSCurValue dd 0
mov byte[CopyRamToggle],1
mov byte[CheatSearchStatus],1
@@ -239,7 +243,9 @@ CheatCodeSearchInit:
mov [eax],edx
add ebx,4
add eax,4
loop .loop
; loop .loop
dec ecx
jnz .loop
; fill searched buffer with 0xFF
mov eax,dword[vidbuffer]
add eax,129600+65536*2
@@ -247,7 +253,9 @@ CheatCodeSearchInit:
.loop2
mov dword[eax],0FFFFFFFFh
add eax,4
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
cmp byte[CheatSrcSearchType],1
jne .nottype1
mov byte[CheatSearchStatus],1
@@ -670,7 +678,9 @@ AddCheatCode:
mov [eax+18*2+2],dl
inc ebx
inc eax
loop .dloop
; loop .dloop
dec ecx
jnz .dloop
pop edx
pop ebx
pop eax
@@ -727,7 +737,9 @@ ProcessCheatCode:
mov [eax+18*2+2],dl
inc ebx
inc eax
loop .dloop
; loop .dloop
dec ecx
jnz .dloop
; determine whether it is gamegenie, par, or GF
; uppercase all codes if necessary
mov eax,GUICheatText9
@@ -742,7 +754,9 @@ ProcessCheatCode:
mov [eax],bl
.nolower
inc eax
loop .loop
; loop .loop
dec ecx
jnz .loop
mov byte[guicheatvalrep],0
xor eax,eax
mov al,[GUICheatPosA]
@@ -776,7 +790,9 @@ ProcessCheatCode:
ja .invalidpar
.okaypar
inc eax
loop .looppar
; loop .looppar
dec ecx
jnz .looppar
jmp decodepar
.invalidgg
jmp guicheaterror
@@ -803,7 +819,9 @@ ProcessCheatCode:
ja .invalidgg
.okaygg
inc eax
loop .loopgg
; loop .loopgg
dec ecx
jnz .loopgg
jmp decodegg
ret
.invalidgf
@@ -824,7 +842,9 @@ ProcessCheatCode:
ja .invalidgf
.okaygf
inc eax
loop .loopgf
; loop .loopgf
dec ecx
jnz .loopgf
mov eax,GUICheatText9+5
mov ecx,6
.loopgf2
@@ -841,7 +861,9 @@ ProcessCheatCode:
ja near .invalidgf
.okaygf2
inc eax
loop .loopgf2
; loop .loopgf2
dec ecx
jnz .loopgf2
mov bl,[GUICheatText9+13]
cmp bl,'0'
je .okaygf3
@@ -1276,7 +1298,9 @@ guicheaterror:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
.again
call GUIUnBuffer
call DisplayBoxes
@@ -1304,7 +1328,9 @@ guicheaterror:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
cmp byte[MouseDis],1
je .mousedis
call Get_MouseData

View File

@@ -59,7 +59,9 @@ ComboAdder:
mov [eax],dl
inc ebx
inc eax
loop .loop
; loop .loop
dec ecx
jnz .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
@@ -67,7 +69,9 @@ ComboAdder:
mov [eax],dl
inc ebx
inc eax
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
@@ -118,7 +122,9 @@ ComboReplace:
mov [eax],dl
inc ebx
inc eax
loop .loop
; loop .loop
dec ecx
jnz .loop
mov ecx,42 ; copy combination code
mov ebx,GUIComboData
.loop2
@@ -126,7 +132,9 @@ ComboReplace:
mov [eax],dl
inc ebx
inc eax
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
mov dx,[GUIComboKey]
mov [eax],dx
mov dl,[GUIComboPNum]
@@ -161,7 +169,9 @@ ComboRemoval:
inc eax
dec ebx
jnz .loop
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
.nomove
dec dword[NumCombo]
mov eax,[NumCombo]

View File

@@ -1109,7 +1109,9 @@ GUIVideoKeys:
.fsloop
mov dword[eax],0
add eax,4
loop .fsloop
; loop .fsloop
dec ecx
jnz .fsloop
pop ecx
pop eax
.nofullscreen
@@ -1130,7 +1132,9 @@ GUIVideoKeys:
.ssloop
mov dword[eax],0
add eax,4
loop .ssloop
; loop .ssloop
dec ecx
jnz .ssloop
pop ecx
pop eax
.nosmallscreen
@@ -2932,7 +2936,9 @@ WaitForKey:
cmp byte[pressed+ebx],0
jne near .again3
inc ebx
loop .b2
; loop .b2
dec ecx
jnz .b2
dec edx
jnz near .again4
.again
@@ -2955,7 +2961,9 @@ WaitForKey:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
jmp .again
.pressedokay
.again2

View File

@@ -359,7 +359,9 @@ GUIloadfilename:
mov [ebx],dl
inc ebx
inc eax
loop .rbackupl
; loop .rbackupl
dec ecx
jnz .rbackupl
cmp byte[yesoutofmemory],1
jne .noout
call outofmemfix
@@ -514,7 +516,9 @@ GUILoadData:
mov [ebx],al
inc edx
inc ebx
loop .loopfnc
; loop .loopfnc
dec ecx
jnz .loopfnc
; get Drive/Dir
mov ebx,prevloaddnamel+1
@@ -998,7 +1002,9 @@ GetLoadHeader:
sub al,'a'-'A'
.nocap
mov [edi],al
loop .loop4
; loop .loop4
dec ecx
jnz .loop4
pop ecx
pop edi
add esi,14

View File

@@ -146,7 +146,9 @@ CalibrateDispA:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
@@ -171,7 +173,9 @@ CalibrateDispB:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
@@ -207,7 +211,9 @@ SetAllKeys:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
mov byte[GUICBHold],0
mov edi,pl1selk

View File

@@ -858,7 +858,9 @@ NEWSYM SwitchFullScreen
.loop
mov dword[eax],0FEFEFEFEh
add eax,4
loop .loop
; loop .loop
dec ecx
jnz .loop
xor eax,eax
mov al,[cvidmode]
@@ -1149,7 +1151,9 @@ GUIWinClicked:
%%loop
mov dword[eax],0
add eax,4
loop %%loop
; loop %%loop
dec ecx
jnz %%loop
pop ecx
pop eax
ret
@@ -1198,7 +1202,9 @@ GUIWinClicked:
%%loop
mov dword[eax],0
add eax,4
loop %%loop
; loop %%loop
dec ecx
jnz %%loop
pop ecx
pop eax
%%clear
@@ -2523,7 +2529,9 @@ guipresstest:
.a
mov byte[pressed+ebx],0
inc ebx
loop .a
; loop .a
dec ecx
jnz .a
call GUIUnBuffer
call DisplayBoxes
call DisplayMenu
@@ -2551,7 +2559,9 @@ guipresstest:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
jmp .again
.pressedokay
push ebx
@@ -2563,7 +2573,9 @@ guipresstest:
mov byte[pressed+ebx],2
.pressedokayb
inc ebx
loop .a2
; loop .a2
dec ecx
jnz .a2
pop ebx
.again2
call Check_Key
@@ -2612,7 +2624,9 @@ guipresstestb:
cmp byte[pressed+ebx],0
jne .tryagain
inc ebx
loop .b2
; loop .b2
dec ecx
jnz .b2
.again
call JoyRead
@@ -2627,7 +2641,9 @@ guipresstestb:
cmp byte[pressed+ebx],0
jne .pressedokay
inc ebx
loop .b
; loop .b
dec ecx
jnz .b
jmp .again
.pressedokay
.again2

View File

@@ -38,7 +38,9 @@ ProcessModem:
.clooptcpip
mov byte[eax],0
inc eax
loop .clooptcpip
; loop .clooptcpip
dec ecx
jnz .clooptcpip
mov dword[CCursLoc],0
mov dword[CViewLoc],0
mov dword[NViewLoc],0
@@ -96,7 +98,9 @@ ProcessModem:
.clooptcpip2
mov byte[eax],0
inc eax
loop .clooptcpip2
; loop .clooptcpip2
dec ecx
jnz .clooptcpip2
mov dword[CCursLoc],0
mov dword[CViewLoc],0
mov dword[NViewLoc],0
@@ -235,7 +239,9 @@ ProcessModem:
.cloopipx
mov byte[eax],0
inc eax
loop .cloopipx
; loop .cloopipx
dec ecx
jnz .cloopipx
mov dword[CCursLoc],0
mov dword[CViewLoc],0
mov dword[NViewLoc],0
@@ -307,7 +313,9 @@ ProcessModem:
.cloop
mov byte[eax],0
inc eax
loop .cloop
; loop .cloop
dec ecx
jnz .cloop
mov dword[CCursLoc],0
mov dword[CViewLoc],0
mov dword[NViewLoc],0
@@ -688,7 +696,9 @@ ProcessModem:
.cloop2
mov byte[eax],0
inc eax
loop .cloop2
; loop .cloop2
dec ecx
jnz .cloop2
mov dword[CCursLoc],0
mov dword[CViewLoc],0
mov dword[NViewLoc],0
@@ -1445,7 +1455,9 @@ transfersram:
pop ebx
inc esi
inc ebx
loop .loop
; loop .loop
dec ecx
jnz .loop
mov byte[sramsavedis],0
ret
@@ -1477,7 +1489,9 @@ transfersram:
je .getnext
mov [ebx],dl
inc ebx
loop .loopb
; loop .loopb
dec ecx
jnz .loopb
ret
NEWSYM RemoteSendEAX
@@ -1681,7 +1695,9 @@ loadstatesend:
pop ecx
pop edx
inc edx
loop .loop
; loop .loop
dec ecx
jnz .loop
call SendPacket
cmp dword[NetStateSize],0
jne .notzero
@@ -1748,7 +1764,9 @@ loadstaterecv:
pop edx
mov [edx],al
inc edx
loop .loop
; loop .loop
dec ecx
jnz .loop
pop ecx
mov bx,[NetLoadHandle]
mov edx,NetStateBuffer

View File

@@ -2428,7 +2428,9 @@ DisplayGUICheatConv:
mov [edx],bl
add edx,2
dec eax
loop .loop
; loop .loop
dec ecx
jnz .loop
mov eax,[ccheatnpos]
inc eax
mov edx,GUICheatTextB+7
@@ -2487,7 +2489,9 @@ DisplayGUICheatConv:
mov [edx],bl
inc eax
inc edx
loop .loop2
; loop .loop2
dec ecx
jnz .loop2
ret
%macro GUIOuttextwin2cheat 2
@@ -2993,7 +2997,9 @@ FindChtSrcRes:
dec dh
jnz .sloop2
inc eax
loop .searchloop
; loop .searchloop
dec ecx
jnz .searchloop
mov eax,ebx
ret
.found
@@ -5488,7 +5494,9 @@ DisplayGUICombo:
jz .donecomp
inc esi
inc edi
loop .comploop
; loop .comploop
dec ecx
jnz .comploop
.donecomp
call ComboClip
mov edi,[GUIccombcursloc]

View File

@@ -411,7 +411,9 @@ NEWSYM showmenu
mov byte[eax],2
.notpr
inc eax
loop .looppr
; loop .looppr
dec ecx
jnz .looppr
; mov byte[pressed+1],2
; cmp byte[pressed+59],1
; jne .not59
@@ -447,7 +449,9 @@ NEWSYM menudrawbox8b
.loop
mov byte[esi],144
inc esi
loop .loop
; loop .loop
dec ecx
jnz .loop
add esi,288-150
dec al
mov ecx,150
@@ -562,7 +566,9 @@ NEWSYM menudrawcursor8b
.loop
mov byte[esi],160
inc esi
loop .loop
; loop .loop
dec ecx
jnz .loop
add esi,288-148
dec al
mov ecx,148
@@ -589,7 +595,9 @@ NEWSYM menudrawbox16b
shr dx,1
mov [esi],dx
add esi,2
loop .loop16b2
; loop .loop16b2
dec ecx
jnz .loop16b2
add esi,288*2-150*2
dec al
mov ecx,150
@@ -623,7 +631,9 @@ NEWSYM menudrawbox16b
.loop16b
mov [esi],dx
add esi,2
loop .loop16b
; loop .loop16b
dec ecx
jnz .loop16b
add esi,288*2-150*2
dec ah
jnz .nocolinc16b
@@ -739,7 +749,9 @@ NEWSYM menudrawcursor16b
.loop
mov [esi],bx
add esi,2
loop .loop
; loop .loop
dec ecx
jnz .loop
add esi,288*2-148*2
dec al
mov ecx,148
@@ -838,7 +850,9 @@ NEWSYM savespcdata
mov [edi],al
inc esi
inc edi
loop .romloop
; loop .romloop
dec ecx
jnz .romloop
; Copy Date of spc dumped
call Get_Date
mov [ssdatst+09Eh],dl