Fix to cpu emulation mode
This commit is contained in:
@@ -393,6 +393,7 @@ NEWSYM joinflags
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -448,6 +449,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -537,6 +539,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -592,6 +595,7 @@ COPemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
|
|||||||
@@ -382,6 +382,7 @@ EXTSYM dmadata
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -437,6 +438,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -535,6 +537,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -590,6 +593,7 @@ COPemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
|
|||||||
@@ -392,6 +392,7 @@ EXTSYM dmadata
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -447,6 +448,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -545,6 +547,7 @@ BRKemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpb]
|
mov cl,[xpb]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
@@ -600,6 +603,7 @@ COPemulmode
|
|||||||
sub ebx,eax
|
sub ebx,eax
|
||||||
mov [xpc],bx
|
mov [xpc],bx
|
||||||
mov eax,[wramdata]
|
mov eax,[wramdata]
|
||||||
|
xor ebx,ebx
|
||||||
mov bx,[xs]
|
mov bx,[xs]
|
||||||
mov cl,[xpc+1]
|
mov cl,[xpc+1]
|
||||||
mov [eax+ebx],cl
|
mov [eax+ebx],cl
|
||||||
|
|||||||
@@ -1903,8 +1903,13 @@ COp5B: ; TCD i
|
|||||||
endloop
|
endloop
|
||||||
COp1B: ; TCS i
|
COp1B: ; TCS i
|
||||||
mov ax,[xa]
|
mov ax,[xa]
|
||||||
|
test byte[xe],1
|
||||||
|
jnz .emul
|
||||||
mov [xs],ax
|
mov [xs],ax
|
||||||
endloop
|
endloop
|
||||||
|
.emul
|
||||||
|
mov [xs],al
|
||||||
|
endloop
|
||||||
COp7B: ; TDC i
|
COp7B: ; TDC i
|
||||||
mov ax,[xd]
|
mov ax,[xd]
|
||||||
mov [xa],ax
|
mov [xa],ax
|
||||||
|
|||||||
@@ -1896,8 +1896,13 @@ COp5B: ; TCD i
|
|||||||
endloop
|
endloop
|
||||||
COp1B: ; TCS i
|
COp1B: ; TCS i
|
||||||
mov ax,[xa]
|
mov ax,[xa]
|
||||||
|
test byte[xe],1
|
||||||
|
jnz .emul
|
||||||
mov [xs],ax
|
mov [xs],ax
|
||||||
endloop
|
endloop
|
||||||
|
.emul
|
||||||
|
mov [xs],al
|
||||||
|
endloop
|
||||||
COp7B: ; TDC i
|
COp7B: ; TDC i
|
||||||
mov ax,[xd]
|
mov ax,[xd]
|
||||||
mov [xa],ax
|
mov [xa],ax
|
||||||
|
|||||||
@@ -1896,8 +1896,13 @@ COp5B: ; TCD i
|
|||||||
endloop
|
endloop
|
||||||
COp1B: ; TCS i
|
COp1B: ; TCS i
|
||||||
mov ax,[xa]
|
mov ax,[xa]
|
||||||
|
test byte[xe],1
|
||||||
|
jnz .emul
|
||||||
mov [xs],ax
|
mov [xs],ax
|
||||||
endloop
|
endloop
|
||||||
|
.emul
|
||||||
|
mov [xs],al
|
||||||
|
endloop
|
||||||
COp7B: ; TDC i
|
COp7B: ; TDC i
|
||||||
mov ax,[xd]
|
mov ax,[xd]
|
||||||
mov [xa],ax
|
mov [xa],ax
|
||||||
|
|||||||
@@ -152,6 +152,7 @@ NEWSYM NMIemulmode
|
|||||||
mov [xs],cx
|
mov [xs],cx
|
||||||
|
|
||||||
xor bh,bh
|
xor bh,bh
|
||||||
|
mov [xpb],bh
|
||||||
mov bl,[xpb]
|
mov bl,[xpb]
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ax,[nmiv8]
|
mov ax,[nmiv8]
|
||||||
@@ -320,6 +321,7 @@ NEWSYM IRQemulmode
|
|||||||
mov [xs],cx
|
mov [xs],cx
|
||||||
|
|
||||||
xor bh,bh
|
xor bh,bh
|
||||||
|
mov [xpb],bh
|
||||||
mov bl,[xpb]
|
mov bl,[xpb]
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ax,[irqv8]
|
mov ax,[irqv8]
|
||||||
@@ -428,6 +430,7 @@ NEWSYM IRQemulmodedeb
|
|||||||
mov [xs],cx
|
mov [xs],cx
|
||||||
|
|
||||||
xor bh,bh
|
xor bh,bh
|
||||||
|
mov [xpb],bh
|
||||||
mov bl,[xpb]
|
mov bl,[xpb]
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ax,[irqv8]
|
mov ax,[irqv8]
|
||||||
@@ -534,6 +537,7 @@ NEWSYM NMIemulmodedeb
|
|||||||
mov [xs],cx
|
mov [xs],cx
|
||||||
|
|
||||||
xor bh,bh
|
xor bh,bh
|
||||||
|
mov [xpb],bh
|
||||||
mov bl,[xpb]
|
mov bl,[xpb]
|
||||||
xor eax,eax
|
xor eax,eax
|
||||||
mov ax,[nmiv8]
|
mov ax,[nmiv8]
|
||||||
|
|||||||
Reference in New Issue
Block a user